我有这样的数据表。
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值的总和。
因此,在谷歌电子表格中,我最初只有20行。根据事务我将添加行,所以我想要一个数组公式,以便我的公式甚至可以在添加新行后工作。
添加了示例表
https://docs.google.com/spreadsheets/d/1wlWqdFwgv90s50iP-bXXBHciyualohj610qFiSatcmQ/edit?usp=sharing
答案 0 :(得分:0)
我想我会寻求一个涉及两个公式的解决方案:
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))
(改变范围以适应)
另请参阅:example sheet 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),)),))
答案 1 :(得分:0)
阵列累积和的另一种方法:
=ArrayFormula(SUMIF(IF(COLUMN(A1:D1),ROW(A2:A)),"<="&ROW(A2:A),A2:D))
答案 2 :(得分:-1)
试试这个example sheet
只需将其放在 E 的第一行:
=SUM(A2:D2)
然后:
=IF((COUNTA(A3:D3)>1),SUM(A3:D3)+E2,"")
并将其拖动到2000多行。 它是在示例表中为您完成的。如果您在行中添加新数据,您将获得所需的内容。