Excel公式每5行求和一次

时间:2017-06-24 20:02:07

标签: excel excel-formula formula

我正在努力使用excel公式:

需要:我需要一个公式来对每5行进行求和 AND 将值放在相应的行上。 (见下表)

这是我迄今为止所拥有的,但它并不存在:

=SUM(OFFSET($A$2,(ROW()-ROW($B$2))*5,,5,))

    | A   |  B | C
-----------------------
1   | 5   | 37 | 37  
2   | 10  | 24 | 37
3   | 7   | 17 | 37
4   | 7   | 0  | 37
5   | 8   | 0  | 37  
6   | 1   | 0  | 24
7   | 3   | 0  | 24  
8   | 5   | 0  | 24  
9   | 5   | 0  | 24
10  | 10  | 0  | 24
11  | 5   | 0  | 17
12  | 1   | 0  | 17
13  | 8   | 0  | 17
14  | 2   | 0  | 17
15  | 1   | 0  | 17

COLUMN" A" = VALUES

COLUMN" B" =当前输出(带上面的公式)

COLUMN" C" =期望的输出

感谢您的协助。

3 个答案:

答案 0 :(得分:3)

B1中输入此公式:

 =SUM(OFFSET($A$1,5*INT((ROW()-1)/5),,5))

然后拖动/复制它。

在~10K行随机数上测试,它的工作正常。

enter image description here

答案 1 :(得分:2)

使用INDEX而不是OFFSET的另一种方式

=SUM(INDEX(A:A,FLOOR(ROW()-1,5)+1):INDEX(A:A,FLOOR(ROW()-1,5)+5))

enter image description here

<强>解释

FLOOR函数获取第一个参数的值并将其向下舍入到第二个参数的最接近的倍数。在第一个INDEX语句中,对于行1-5,在FLOOR语句中,从行号中减去一个,得到0-4。 FLOOR语句将所有这些值舍入为零,因此在添加一个值后,前5行中的每一行都会得到1的值。

第二个INDEX和FLOOR语句的工作方式相同,只是在末尾添加5,前五行的值为5。

INDEX返回一个引用,所以将INDEX(A:A,1):INDEX(A:A,5)放到A列的前5个单元格中是有效的,然后你可以将它们相加。

对于第6-10行,FLOOR语句以相同的方式产生5,因此在分别添加1和5之后,您将获得A列的单元格6-10,依此类推。

Row()     Row()-1    FLOOR(Row()-1)   FLOOR(Row()-1)+1   Floor(Row()-1)+5
1         0          0                1                  5
2         1          0                1                  5
3         2          0                1                  5
4         3          0                1                  5
5         4          0                1                  5
6         5          5                6                  10
7         6          5                6                  10
8         7          5                6                  10
9         8          5                6                  10
10        9          5                6                  10

答案 2 :(得分:1)

这是作弊,但在 B5 中输入:

=IF(MOD(ROW(),5)=0,SUM(A1:A5),B6)

然后向上和向下复制这个单元格:

enter image description here

B1 B4 中的公式无效,但会产生正确的结果。