4

В Excel вы можете суммировать весь столбец с =SUM(B:B) . Но, конечно, вы не можете использовать эту формулу в столбце, который хотите суммировать, потому что вы получите циклическую ссылку.

Существует ли простой способ суммирования всех значений в столбце под текущей ячейкой, кроме хаков, таких как =SUM(B2:B65536)?

Для справки вот кто-то задает тот же вопрос на сайте ask.metafilter: http://ask.metafilter.com/65955/ExcelFilter-How-do-I-display-the-sum-within-that-column-without-resulting-in -a-круговая опорная ошибка

Предложение в этой ветке =SUM(B:B-B1) - это, по сути, то, что я ищу, если бы оно действительно работало!

2 ответа2

2

В той же ветке, на которую вы указали в качестве ссылки, есть пользователь, предлагающий UDF для решения проблемы. Поиск SUMRANGEWITHEXCEPTION в тексте.

С осторожностью вы можете также следовать справке Excel 2007:

Если вы хотите сохранить циклическую ссылку, вы можете включить итеративные вычисления, но вы должны определить, сколько раз формула должна пересчитываться. Когда вы включаете итеративные вычисления без изменения значений для максимальных итераций или максимального изменения, Office Excel прекращает вычисления после 100 итераций или после того, как все значения в циклической ссылке изменяются менее чем на 0,001 между итерациями, в зависимости от того, что наступит раньше. Тем не менее, вы можете контролировать максимальное количество итераций и количество допустимых изменений.

  1. Нажмите кнопку Microsoft Office, выберите «Параметры Excel», а затем щелкните категорию «Формулы».
  2. В разделе Параметры расчета установите флажок Включить итеративный расчет.
  3. Чтобы задать максимальное количество раз, которое Office Excel будет пересчитывать, введите число итераций в поле «Максимальное количество итераций». Чем больше число итераций, тем больше времени требуется Excel для расчета листа.
  4. Чтобы установить максимальную сумму изменений, которую вы будете принимать между результатами расчетов, введите сумму в поле Максимальное изменение. Чем меньше число, тем точнее результат и тем больше времени требуется Excel для расчета листа.
1

Это будет работать в любой ячейке в столбце B без изменений:

=SUM(IF(ROW()=1,0,INDIRECT("$B$1:$B$"&ROW()-1,1)),
      IF(ROW()=65536,0,INDIRECT("$B$"&ROW()+1&":$B$65536")))

Примечание. Это для версий Excel ранее 2007 года.

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