2

В Excel у меня есть ячейка, содержащая формулу, ссылающуюся на другие ячейки, которые ссылаются на другие ячейки и т.д., Образуя большое дерево ссылок. Я хотел бы рекурсивно подставлять все вхождения всех ссылок, чтобы формула содержала только константы и никаких ссылок на другие ячейки.

Например, если у меня есть эти клетки:

A1=3
A2=4
A3=5
A4=A1+A2
A5=A4/A3+1

Есть ли способ расширить формулу A5 в нечто вроде "(3+4)/5+1"?

Я нашел свойство Precedents в VBA, которое возвращает список прецедентов (ячейки, на которые есть ссылки в формуле, на разных уровнях всего дерева зависимостей). Решением было бы найти их появление в формуле и рекурсивно заменить их формулой соответствующих ячеек. Однако сделать это синтаксически сложно (например, подумайте о замене вхождения "A1" в формуле «= A10+A11»).

Меня спросили, зачем мне это нужно, вот моя проблема: в моей электронной таблице много финансовых расчетов, которые я не понимаю, с частичными результатами, которые распределены по различным ячейкам. Меня интересует только конечный результат, который находится только в одной ячейке и зависит от ряда начальных переменных. Если бы мне пришлось отслеживать все зависимости, это была бы долгая работа. Мне нужно работать с разными сценариями с разными начальными значениями и, конечно, конечным результатом. Эти сценарии будут установлены решателем автоматически (поэтому мне нужно, чтобы все они были в одной электронной таблице), чтобы оптимизировать функцию.

1 ответ1

0

Вы можете использовать Заменить (на домашней ленте выберите «Найти и выбрать / заменить»).

Для вашего примера я бы настроил окно замены как:

Найти что: А4

Заменить на: (A1+A2)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .