LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  использование ф...
 использование функции IRR
 
 04.09.2007 13:22:05
McAr
54 сообщения


использование функции IRR

Добрый день

Для решения статистической задачи (создание отчета), ранее использовал функцию Rate, но учитывая некоторые особенности инвестиционных потоков нужно перейти на IRR. вВсе решалось пр помощи запросов и построителя функций.

В качестве исходника стоит запрос, где представлен массив данных как того требует условие функции, но почему-то при запуске функция не распознается. Подскажите, как это все таки побороть при помощи запросов, а не VBA?

Заранее признателен

 05.09.2007 11:32:14
host
87 сообщения


Re: использование функции IRR

Эта функция принадлежит VBA, а не SQL, поэтому она и не распознается. Надо создавать глобальную функцию ArrNew и описывать ее в VBA.

  • SELECT ArrNew("1000,0;200,0") AS a FROM Таблица1;
  • SELECT ArrNew([Поле1] & ";" & [Поле2]) AS a FROM Таблица1;

Функция должна быть прописана в модуле VBA, а не формы. 

Public Function arrNew(arrString) As Variant
    Dim arr, i As Long, n As Long, ret
    Dim Values() As Double
    On Error GoTo 999
    arr = Split(arrString, ";")
    n = UBound(arr)
    ReDim Values(n)
    For i = 0 To n
        Values(i) = CDbl(arr(i))
    Next
    arrNew = Format(IRR(Values()) * 100, "#0.00")
    Exit Function
999:
    Err.Clear
    arrNew = 0
End Function

 06.09.2007 10:31:41
McAr
54 сообщения


Re: использование функции IRR

Да, запара:-)

Благодарю

 06.09.2007 11:09:01
McAr
54 сообщения


Re: использование функции IRR

Перестроил

Запустил

Работает, но выдает только 0

Есть подозрение, что он рассматривает в итеррациях только одно значение, а не массив.

Подскажите, как корректно перестроить эту функцию, если есть массив из 2-х полей (группа инвестиций и суммы), где:

- группа инвестиций - поле группировки инвестиций, где группировок может быть неограничено;

- суммы - массив данных, в пределах одной группировки, где идут сумма инвестиции (с "минусом") и суммы ежемесячных возвратов, по количеству месяцев погашения, причем суммы ежемесячных погашений и количесво месяцев для каждой инвестиции разное.

К сожалению, пример массива не смог прикрутить

 

 07.09.2007 9:02:15
Admin1
731 сообщения
1-ый


Re: использование функции IRR

Надо в качестве первого значения ввести отрицательное, например, -2000. Следующее может быть положительным: 5000.

  Программирование  Microsoft Access. Файлы mdb и accdb  использование ф...
ПоискПоиск  Список форумовСписок форумов  
right