Есть ли способ реализовать Солвер в формуле , чтобы найти нули данной функции численно? Или решить проблему оптимизации (поиск корня можно переформулировать как проблему оптимизации)?
Solver имеет графический интерфейс, который в основном позволяет решать одну ячейку за раз.
Вы можете автоматизировать это с помощью VBA, но вывод остается статичным, т. Е. Если ячейки меняются, вам нужно снова запустить код VBA.
Если вместо этого он может быть реализован в виде формулы, он будет автоматически пересчитан при изменении своих входных данных. Это вообще возможно?
Позвольте мне привести пример с расчетом приведенной стоимости и внутренней нормы прибыли; да, я знаю, что в Excel есть формула для ее расчета, моя - только пример.
C6: C8 - денежные потоки; внутренняя норма прибыли - это ставка, которая приводит к тому, что чистая приведенная стоимость этих денежных потоков равна нулю
Есть ли способ написать формулу в C11 для расчета скорости, которая приводит к тому, что целевая функция (NPV в C10) становится равной нулю?
В основном что-то вроде fsolve()
в Matlab или Python scipy ?
Единственное, о чем я могу думать, это написать UDF в VBA для реализации чего-то вроде метода сечения или алгоритма Ньютона Рапсона для численного решения , но это будет похоже на переизобретение рулевое колесо. Плюс IRR - очень простой случай, но для более сложных вычислений я не уверен, что VBA - лучший инструмент. Это единственный вариант?
EDIT : было предложено, чтобы установка Solver AddIn сделала доступными функции в Excel, такие как SolverOk (). Однако, насколько я понимаю, эти функции должны использоваться в коде VBA, а не вводиться в электронную таблицу Excel. Или, по крайней мере, если есть способ, я его не нашел. Например, если я использую SolverOk()
согласно синтаксису в ссылке, я получаю ошибку #Value!
. Это после включения ссылки на Солвер, как объяснено в ссылке.