powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / расчет ВСД
6 сообщений из 6, страница 1 из 1
расчет ВСД
    #39487404
Бакыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,
необходимо реализовать встроенную функцию ВСД
вот пример;
Код: plsql
1.
2.
3.
4.
5.
6.
-10000
5000
4000
3000.00
1000
14.49%



согласно формуле получил 3000 , как вычислить процент 14.49?

Код: plsql
1.
2.
3.
4.
select -10000 +5000/power((1+0/100),1)+4000/power((1+0/100),2)+3000/power((1+0/100),3)+1000/power((1+0/100),4)
    
from dual
3000
...
Рейтинг: 0 / 0
расчет ВСД
    #39487483
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бакыт,

это решение показательного уравнения типа 10=5/(х^3)+4/(х^2)+3/х+1 ; х->1.1451 , вроде пока в SQL Server родной такой функции нет (как в Excel/VBA в группе финансовые) - только через сторонние библиотеки или самому писать код.
...
Рейтинг: 0 / 0
расчет ВСД
    #39487485
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БакытЗдравствуйте,
необходимо реализовать встроенную функцию ВСД
вот пример;
Код: plsql
1.
2.
3.
4.
5.
6.
-10000
5000
4000
3000.00
1000
14.49%



согласно формуле получил 3000 , как вычислить процент 14.49?

Код: plsql
1.
2.
3.
4.
select -10000 +5000/power((1+0/100),1)+4000/power((1+0/100),2)+3000/power((1+0/100),3)+1000/power((1+0/100),4)
    
from dual
3000



Если речь об Access, то лучше обратиться сюда .
...
Рейтинг: 0 / 0
расчет ВСД
    #39487506
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел IRR здесь (в источнике как функция, в коде снизу как вычисление):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
declare @strIDs varchar(8000)='-10,5,4,3,1'
   declare @guess decimal(30,10)=0
   DECLARE @t_IDs table(id int identity(0,1), value decimal(30,10))
   DECLARE @strID varchar(12), @sepPos int, @NPV decimal(30,10)
   set @strIDs = coalesce(@strIDs + ',', '')
   set @sepPos = charindex(',', @strIDs)
   WHILE @sepPos > 0  BEGIN
      SET @strID = LEFT(@strIDs, @sepPos - 1)
      INSERT INTO @t_IDs(value) SELECT (CAST(@strID AS decimal(20,10))) where isnumeric(@strID)=1
      SET @strIDs = RIGHT(@strIDs, DATALENGTH(@strIDs) - @sepPos)
      set @sepPos = charindex(',', @strIDs)
   END
   set @guess = case when isnull(@guess, 0) <= 0 then 0.00001 else @guess end
   select @NPV = SUM(value/power(1+@guess, id)) from @t_IDs
   WHILE @NPV > 0
   BEGIN
     set @guess = @guess + 0.00001
     select @NPV = SUM(value/power(1+@guess, id)) from @t_IDs
   END
   select @guess
...
Рейтинг: 0 / 0
расчет ВСД
    #39487514
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidy, действительно - если Access - то в VBA (Excel) есть IRR так что можно вызвать в VBA Excel функцию с созданием объекта.
...
Рейтинг: 0 / 0
расчет ВСД
    #39487611
Бакыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я буду реализовывать на plsql
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / расчет ВСД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]