Excel公式来计算不重叠的细胞范围?

时间:2010-12-19 12:43:55

标签: excel worksheet-function

假设我在A1到A20中有数字并且我想在A列中将5个单元格的非重叠范围相加并将结果存储在E列的单元格中,它看起来像这样(如果公式被输入到每个单元格中)手动E列单元格:

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

但是,我不想手动将公式键入E单元格。我希望能够在E1中选择公式并将其向下拖动到E4,同时保持A中5个单元格的非重叠范围!默认情况下,Excel不会提供此行为,而是执行此操作:

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

查看每个SUM()函数中5个单元格的范围是如何重叠的?例如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 个答案:

答案 0 :(得分:2)

关键是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开始。

答案 1 :(得分:2)

当输入到单元格E1并填充到E2,E3等中时,此公式将得到正确的结果...

=SUM(OFFSET(A1,ROW(A1)*4-4,0,5,1))