Часто задаваемые вопросы - LibreOffice Calc

From The Document Foundation Wiki
< Faq‎ | Calc‎ | 125
Jump to: navigation, search

Как осуществить расчет накопленным итогом с использованием итераций

Ситуация: Вы хотите добавить к сумме последовательные значения результатов расчетов. Как действовать, зная, что при изменении "источника" значений для расчета, результат пересчитывается и не "помнит" предыдущее значение?

В следующем примере, результат расчета можно найти в C7:

=C10-C13+C16
Скриншот - расчет с накоплением
Начальная ситуация

Вы хотели бы захватить новые значения в С10, С13 и С16 и этот результат операции добавить к предыдущему. Несмотря на некоторые ограничения, это может быть достигнуто при помощи итераций.

Скриншот реализации
Реализация накоплений

Пояснения

  • Давайте начнём с возможности повторной инициализации накопленного итога. Мы добиваемся этого с помощью значения содержащегося в ячейке "тест" (C5). Для примера, если C5 содержит 0 (ноль), накопленный итог будет сброшен.
  • Далее, мы должны контролировать итерацию с помощью меню Сервис ▸ Параметры... ▸ LibreOffice Calc ▸ Вычисления. Определение его в 1 приводит к двум расчетам. Но мы не хотим дважды добавлять C7 в накопленный итог. Решение простое: нужно разделить результат накопленного итога на число 2 (см. выше в E7).
  • Минимальное изменение косвенно определяет, какое максимальное значение учитывается. Например, со значением 10000, что угодно в С7 больше, чем 20000 вызовет ошибку 523 (расчет не сходится).
  • Давайте продолжим непосредственно с расчета накопленным итогом. Результат, который следует накапливать уже имеется в C7, но вы не можете его использовать как источник для накопления. Когда любая ячейка из источников меняет значение (эти ячейки показаны оранжевым на скриншоте), C7, для расчета накопленным итогом, необходимо обновить. Поэтому расчет повторяться в E7 вместе с проверкой для сброса значений и необходимым делением на 2:
=IF(C5=0;0;E7+((C10-C13+C16)/2))
  • Во время загрузки документа, значения пересчитываются. Но это является затруднительным в случае расчетов накопленным итогом. Поэтому, вы должны принять меры предосторожности (меню Сервис ▸ Содержимое ячейки ▸ Вычислять автоматически снять галочку), а затем проводить перерасчет "вручную" с помощью Ctrl+⇧ Shift+F9.

В примере лист защищён (без пароля) так, что редактировать можно только области для ввода данных (оранжевые ячейки).