Итеративный расчет для поиска нужного числа - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь использовать циклическую ссылку с итерационными вычислениями, чтобы найти конкретное c число, однако мой файл не будет отображать это число. Я переворачиваю итеративные вычисления, но они сильно колеблются, хотя есть однозначный ответ. Я включил изображение моего примера.

enter image description here

1 Ответ

1 голос
/ 07 февраля 2020

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

(Примером полезных итерационных вычислений является анализ поля. Вы можете определить значения по краю поля любой формы. В внутреннее значение каждой точки является средним значением всех точек вокруг нее. После нескольких тысяч итераций все стабилизируется до равномерно распределенного поля.)

В вашей ситуации итерационные вычисления не приводят к стабильному результат. Когда Конечное Ca sh равно -300, Депозит Ca sh устанавливается равным 300. Но тогда Конечный Ca sh равен 0, поэтому Депозит Ca sh устанавливается равным 0. Но тогда Конечный Ca sh равно -300, поэтому для депозита Ca sh установлено значение 300, ad finitum.

Расчет суммы депозита Ca sh, необходимой для того, чтобы конечный Ca sh был больше или равное 0 не может быть основано на Конце Ca sh или Суммарном депозите, так как оно будет продолжать противоречить самому себе, требуется ли депозит Ca sh.

Вместо этого При подсчете суммы Ca sh требуется внести депозит, нужно посмотреть на все остальные депозиты, кроме себя, и сравнить это с общей суммой снятия. (Не ссылаясь на Общее количество депозитов или Конец Ca sh, круговая ссылка отсутствует). Он может быть настроен как:

=IF(B2+B5<B14,B14-(B2+B5),0)

Он складывает вместе все остальные депозиты , исключая сам , и сравнивает это с общим снятием, чтобы определить, является ли какой-либо дополнительный депозит требуется. Если требуется дополнительный депозит, он затем вычитает все другие депозиты из общей суммы снятия, чтобы выяснить, сколько он должен быть.

Более элегантный способ написания такой формулы:

=MAX(B14-B5-B2,0)

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

...