Имя: Пароль:
1C
 
как расчитать IRR
0 Sponger
 
19.05.16
12:33
Добрый день.

В Excel есть финансовая функция ВСД - расчет внутренней нормы доходности.

Как такую же формулу реализовать в 1С?
1 Господин ПЖ
 
19.05.16
12:34
копи пасте формулу из вики и доработать напильником
2 Sponger
 
19.05.16
13:32
// Возвращает внутреннюю ставку доходности для графика денежных потоков
//
// Параметры:
//  мПлатежи - Массив - Обязательный. Ряд денежных потоков, соответствующий графику платежей, приведенному в аргументе "даты".
//             Первый платеж является необязательным и соответствует затратам или выплате в начале инвестиции.
//             Если первое значение является затратами или выплатой, оно должно быть отрицательным.
//             Все последующие выплаты дисконтируются на основе 365-дневного года. Ряд значений должен содержать по крайней мере
//             одно положительное и одно отрицательное значение.
//  мДаты    - Массив - Обязательный. Расписание дат платежей, которое соответствует ряду денежных потоков.
//  Предп    - Число - Необязательный. Величина, предположительно близкая к результату ЧИСТВНДОХ.
//  Точность - Число - Необязательный. - Точность вычисления результата.
//             Чем ближе шаг изменения Предп (0.001) к нулю, тем точнее получается результат.
//
//Возвращаемое значение:
//  Число -
//
Функция ЧИСТВНДОХ(мПлатежи, мДаты, Предп=0.1, Точность = 0.0001) Экспорт
    Если мПлатежи.Количество() = мДаты.Количество() и мПлатежи[0] < 0 Тогда
        p = 0;
        Для Сч = 0 По мПлатежи.Количество()-1 Цикл
            p = p + мПлатежи[Сч] / Pow(1 + Предп,((мДаты[Сч] - мДаты[0])/60/60/24)/365);
        КонецЦикла;
        Если p < 0 Тогда
            Пока p <= 0 Цикл
                Предп = Предп - Точность;
                p = 0;
                Для Сч = 0 По мПлатежи.Количество()-1 Цикл
                    p = p + мПлатежи[Сч] / Pow(1 + Предп,((мДаты[Сч] - мДаты[0])/60/60/24)/365);
                КонецЦикла;
            КонецЦикла;
        Иначе
            Пока p >= 0 Цикл
                Предп = Предп + Точность;
                p = 0;
                Для Сч = 0 По мПлатежи.Количество()-1 Цикл
                    p = p + мПлатежи[Сч] / Pow(1 + Предп,((мДаты[Сч] - мДаты[0])/60/60/24)/365);
                КонецЦикла;
            КонецЦикла;
        КонецЕсли;
        Возврат Предп;
    Иначе
        Возврат 0;
    КонецЕсли;
КонецФункции


есть это, но неверно считает