Google Sheets中ARRAYFORMULA累计求和失效问题及解决方法
Google Sheets ARRAYFORMULA累计求和失效问题解决
失效原因
你使用的公式中,SUM在ARRAYFORMULA环境下会直接计算整个指定范围的总和,无法逐行生成累计结果;同时INDIRECT的相对引用在数组公式里不能自动迭代更新行号范围,导致所有行都只计算了G1到第2行的和,后续行没有动态调整求和范围,最终仅返回第2行的数值。
可行公式
方法1:使用SCAN函数(简洁高效,推荐)
=ARRAYFORMULA(IF(F2:F<>"", SCAN(0, G2:G, LAMBDA(a,b, a+b)), ""))
- 说明:
SCAN从初始值0开始,遍历G列的每个值,每次将当前值与之前的累计结果相加,自动生成逐行累计和;搭配IF判断F列不为空时显示结果,完全匹配你的需求。
方法2:使用MMULT函数(兼容旧版Google Sheets)
=ARRAYFORMULA(IF(F2:F<>"", MMULT(N(ROW(G2:G)>=TRANSPOSE(ROW(G2:G))), G2:G), ""))
- 说明:通过生成三角矩阵(每行中当前行及之前的行标记为1,之后的行标记为0),再与G列数值做矩阵乘法,得到每行的累计求和结果。
内容的提问来源于stack exchange,提问作者user18339372
相关产品推荐
相关产品推荐

