Добрый день. Как обычно, в основе экономическая модель бюджета, на основе которого рассчитываются различные экономические показатели. Как рассчитать конкретный показатель в PQ мы разобрали, но как быть если таких показателей много и формулы различной сложности и возможность быстрого редактирования хотелось бы. Есть идея прописать все расчетные формулы в таблице наподобие этой:
Стр
Статья
Формула
300
Расход
310+320+330
400
Прибыль
300-100
и произвести последовательный расчет с добавлением результатов в таблицу, где например статья Расход 300 = сумме значений по строкам 310+320+330 и т.д.
Вопрос пока риторический, возможен ли такой расчет в принципе? Если да, то как? Тестовый файл с примером как обычно прилагаю)
PooHkrd, в теории да, ведь можно подтянуть формулу, с помощью функции замены поменять номер строки на значение и вычислить!? В свое время я делал такую функцию на VBA.
На сколько я помню в эксель нет возможности вычислить текстовую формулу, приходилось делать функцию с использованием Application.Evaluate. PP может как то решить эту задачу?
TankSpb написал: Как рассчитать конкретный показатель в PQ мы разобрали, но как быть если таких показателей много и формулы различной сложности и возможность быстрого редактирования хотелось бы
Цитата
TankSpb написал: делать функцию с использованием Application.Evaluate
PooHkrd, т.е. в теории можно в PQ к таблице с исходными данными добавить строки из таблицы "Формулы" подменив номера строк (Стр) на соответствующие значения и произвести вычисление!?
Нет, это значит что часть кода или весь код запроса на языке М можно внести в именованную ячейку листа, а в самом запросе просто вытащить это значение в виде текста, и при помощи функции Expression.Evaluate выполнить этот код не заходя в редактор запроса. На самом деле это предоставляет всякие интересные возможности, но только с точки зрения хранения кода типовых функций, которые используются в разных инструментах, и если нужно исправить баг или прикрутить новую фичу в конкретной функции то исправляется только текст в одном текстовом файле, а не в куче разных инструментов. Я это так использую.