Формула Excel для суммирования неперекрывающихся диапазонов ячеек? - PullRequest
5 голосов
/ 19 декабря 2010

Скажем, у меня есть числа от A1 до A20, и я хотел бы суммировать непересекающиеся диапазоны 5 ячеек в столбце A и сохранить результаты в ячейках в столбце E, это выглядело бы примерно так (если бы формулы вводились в каждыйЯчейка столбца E вручную):

E1 = SUM(A1:A5)
E2 = SUM(A6:A10)
E3 = SUM(A11:A15)
E4 = SUM(A16:A20)

Однако я не хочу вводить формулы в ячейки E вручную.Я хочу иметь возможность выбрать формулу в E1 и перетащить ее на E4, сохраняя при этом непересекающиеся диапазоны 5 ячеек в A!Excel не дает мне такое поведение по умолчанию, вместо этого он делает следующее:

E1 = SUM(A1:A5)
E2 = SUM(A2:A6)
E2 = SUM(A3:A7)
E4 = SUM(A4:A8)

Посмотрите, как перекрываются диапазоны по 5 ячеек в каждой функции SUM ()?например, A1: A5 и A2: A6.Это не то, что я хочу.

Итак, какова формула, которая позволила бы мне сделать это?По сути, следующий псевдокод будет работать, но я не могу реализовать что-либо подобное в Excel:

SUM(CELL(COLUMN, (CURRENT_ROW - 1) * 5 + 1):CELL(COLUMN, (CURRENT_ROW - 1) * 5 + 5))

Например, для E2, CURRENT_ROW = 2, то есть это будет выглядеть так:

SUM(CELL(A, (2 - 1) * 5 + 1):CELL(A, (2 - 1) * 5 + 5))
= SUM(CELL(A, 6):CELL(A, 10))

Этот псевдокод предполагает, что CELL имеет сигнатуру метода CELL (строка, столбец).

Ответы [ 2 ]

2 голосов
/ 19 декабря 2010

Эта формула будет получать правильные результаты при вводе в ячейку E1 и заполнении в E2, E3 и т. Д.

2 голосов
/ 19 декабря 2010

Ключом к этому является функция OFFSET. Смещение занимает начальную ячейку, а также количество строк, столбцов, а также необязательную высоту и ширину для создания ссылки на ячейку / диапазон на лету. Хитрость заключается в том, чтобы использовать другие функции для генерации смещения строки и других параметров.

Я только что собрал что-то, что, кажется, делает то, что ты хочешь, я посмотрю, смогу ли я объяснить это ...

Столбец A: целые числа (A1) 0, (A2) 1, (A3) 2,3,4,5 и т. Д. ... это показатель того, на сколько вы компенсируете, вы можете удалить это, используя что-то вроде функции ROW) Столбец D (или любое другое произвольное местоположение): числа, которые вы хотите суммировать, начиная с D1 - я фактически только что использовал (D1) 1, (D2) 2,3,4,5 ...

Вам интересна колонка B, формула:

=SUM(OFFSET(D$1,A1*5,0,5,1))

Что он делает: суммирование диапазона, определяемого как: блок ячеек, начинающийся с (A1 * 5) ячеек вниз и 0 от $ D $ 1, который равен 5 максимумам на 1 ширину. См. Редактирование, я оставил это, потому что вы можете поместить произвольные числа в ячейки A и использовать этот принцип.

Надеюсь, это имеет какой-то смысл? Excel не поддается текстовым объяснениям!

Редактировать: Удалены ячейки A1 ..., помнится, что ROW () разрешает самостоятельные ссылки, что означает, что вы можете сделать

 =SUM(OFFSET(D$1,(ROW(B1)-1)*5,0,5,1))

Если эта формула находится в ячейке B1 (вставлена ​​вниз), а ваши данные находятся в столбце D, начиная с 1.

...