Frequently asked questions - Calc
Outdated translations are marked like this.
TDF LibreOffice Document Liberation Project Блоги сообщества Weblate Nextcloud Redmine Ask LibreOffice Пожертвования
Как осуществить расчет накопленным итогом с использованием итераций
Ситуация: Вы хотите добавить к сумме последовательные значения результатов расчетов. Как действовать, зная, что при изменении "источника" значений для расчета, результат пересчитывается и не "помнит" предыдущее значение?
В следующем примере, результат расчета можно найти в C7:
=C10-C13+C16
=C10-C13+C16
Вы хотели бы захватить новые значения в С10, С13 и С16 и этот результат операции добавить к предыдущему.
Несмотря на некоторые ограничения, это может быть достигнуто при помощи итераций.
Пояснения
- Давайте начнём с возможности повторной инициализации накопленного итога. Мы добиваемся этого с помощью значения содержащегося в ячейке "тест" (C5). Для примера, если C5 содержит 0 (ноль), накопленный итог будет сброшен.
- Далее, мы должны контролировать итерацию с помощью меню ▸ ▸ ▸ . Определение его в 1 приводит к двум расчетам. Но мы не хотим дважды добавлять C7 в накопленный итог. Решение простое: нужно разделить результат накопленного итога на число 2 (см. выше в E7).
- Минимальное изменение косвенно определяет, какое максимальное значение учитывается. Например, со значением 10000, что угодно в С7 больше, чем 20000 вызовет ошибку 523 (расчет не сходится).
- Давайте продолжим непосредственно с расчета накопленным итогом. Результат, который следует накапливать уже имеется в C7, но вы не можете его использовать как источник для накопления. Когда любая ячейка из источников меняет значение (эти ячейки показаны оранжевым на скриншоте), C7, для расчета накопленным итогом, необходимо обновить. Поэтому расчет повторяться в E7 вместе с проверкой для сброса значений и необходимым делением на 2:
=IF(C5=0;0;E7+((C10-C13+C16)/2))
- Во время загрузки документа, значения пересчитываются. Но это является затруднительным в случае расчетов накопленным итогом. Поэтому, вы должны принять меры предосторожности (меню ▸ ▸ снять галочку), а затем проводить перерасчет "вручную" с помощью Ctrl + ⇧ Shift + F9.
В примере лист защищён (без пароля) так, что редактировать можно только области для ввода данных (оранжевые ячейки).