繁体   English   中英

Excel公式每5行求和

[英]Excel formula to Sum every 5 rows

我正在努力与一个Excel公式:

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

这是我到目前为止的内容,但还不完全是:

=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

第A栏=值

列“ B” =当前输出(带上式)

列“ C” =所需的输出

谢谢你的协助。

B1输入以下公式:

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

并向下拖动/复制。

在大约1万行随机数上进行了测试,它可以正常工作。

在此处输入图片说明

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

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

在此处输入图片说明

说明

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

第二个INDEX和FLOOR语句的工作方式相同,不同之处在于,在末尾加5以使前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

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

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

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

在此处输入图片说明

B1B4中的公式无效,但得出正确的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM