Excel公式来求和单元格的非重叠范围?

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

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

但是,我不想将公式手动input到E单元格中。 我希望能够在E1中select公式并将其拖到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(行,列)。

关键是OFFSETfunction。 偏移需要一个起始单元格,以及多个行,列和可选的高度和宽度,以生成对运行中的单元格/范围的引用。 诀窍是使用其他函数来生成行偏移量和其他参数。

我只是敲了一些似乎做你想做的事,我会看看,如果我可以解释它…

A列:整数(A1)0,(A2)1,(A3)2,3,4,5等…这是一个索引,你有多less抵消,你可以删除这个东西像ROW函数)D列(或任何其他任意位置):你想要总结的数字,从D1开始 – 我实际上只是使用(D1)1,(D2)2,3,4,5 …

B列是你感兴趣的,公式是:

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

它在做什么:总结由以下定义的范围:从$ D $ 1开始(A1 * 5)个单元格的单元块,以及5个高1个宽的单元块。 看到编辑,我把它放在这里,因为你可以把任意数字放在A单元格中并使用这个原理。

希望有某种感觉? Excel不适合文本解释!

编辑:删除单元格A1 …,记住,ROW()允许自引用,这意味着你可以做

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

这个公式在单元格B1中(粘贴),而你的数据在从D开始的列D中。

这个公式在进入单元格E1时会得到正确的结果,并填充到E2,E3等等中。

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