繁体   English   中英

ARRAYFORMULA求和上一个行单元格

[英]ARRAYFORMULA to sum previous row cell

我有这样的数据表。

Column--    |C1|C2|C3|Total|
=========================
Row--1      | 0| 0| 0|  100| (I will have some pre calculated value for total column which is not sum of the columns in this row)

Row--2      |10|20|30|  160| (sum of previous row =100+current row (10+20+30) = 160)

Row--3      | 1| 2| 3|  166|

Row--4      | 4| 5| 6|  181|

今天,我为每行使用一个复制粘贴公式。 但是,我想要一个用于SUM列的数组公式,以便在添加新行时该公式将自动工作。

我想要的是,SUM列将包含当前行A到D值和上一行SUM值的总和。

因此,在Google电子表格中,最初我只会有20行。 基于事务,我将添加行,因此我需要一个数组公式,以便即使添加新行后我的公式也可以使用。

添加了示例表

https://docs.google.com/spreadsheets/d/1wlWqdFwgv90s50iP-bXXBHciyualohj610qFiSatcmQ/edit?usp=sharing

我想我将寻求一个涉及两个公式的解决方案:

在E1中,一个公式负责每行的求和;

=ArrayFormula(mmult(filter(A1:D,len(A1:A)), transpose(column(A1:D1)^0)))

然后在F1中:前几行的“累加”:

=ArrayFormula(SUMIF(ROW(A1:A1064),"<="&ROW(A1:A1064),E1:E1064))

(更改范围以适合)

另请参阅: 示例工作表1

如果您真的需要一个公式解决方案,可以尝试:

=ArrayFormula(if(len(A1:A1064), if(row(A1:A1064)=1, mmult(A1:D1, transpose(column(A1:D1)^0)),if(A1:A1064,mmult(transpose(if(transpose(row(A1:D1064))>=row(A1:D1064),A1:A1064+B1:B1064+C1:C1064+D1:D1064, 0)),row(A1:A1064)^0),)),))

另请参见示例表2

数组累加和的另一种方法:

=ArrayFormula(SUMIF(IF(COLUMN(A1:D1),ROW(A2:A)),"<="&ROW(A2:A),A2:D))

试试这个示例表
只需将其放在E的第一行:

=SUM(A2:D2)

接着:

=IF((COUNTA(A3:D3)>1),SUM(A3:D3)+E2,"")

并将其向下拖动到2000+行。 在示例表中为您完成了此操作。 如果在行中添加新数据,则将获得所需的内容。

暂无
暂无

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

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