![](/img/trans.png)
[英]ARRAYFORMULA – Create a running balance – Add cell in previous row + cell in same row
[英]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.