You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中用arrayformula()实现动态累计求和?

动态累计求和的实现方法(无需拖拽公式)

你之前尝试的=ARRAYFORMULA(SUM($A$2:A))无效,是因为SUM是聚合函数,在ARRAYFORMULA中只会返回整个区域的总合计,无法生成逐行的累计序列。这里给你两种符合需求的动态实现方案:

方案1:用SCAN函数(简洁高效,Google Sheets新版本支持)

这是目前最直观的动态累计求和写法,自动适配A列新增的数据:

=ARRAYFORMULA(SCAN(0, A2:INDEX(A:A, COUNTA(A:A)), LAMBDA(acc, val, acc + val)))
  • SCAN函数从初始值0开始,遍历A2到A列最后一个非空单元格的区域
  • LAMBDA(acc, val, acc + val)定义累加逻辑:每次把当前值val加到之前的累计值acc上
  • INDEX(A:A, COUNTA(A:A))自动定位A列最后一行有内容的单元格,实现动态范围扩展

方案2:用MMULT函数(兼容旧版本Google Sheets)

如果你的表格版本不支持SCAN,可以用矩阵乘法实现:

=ARRAYFORMULA(IF(A2:A="", "", MMULT(--(ROW(A2:A) >= TRANSPOSE(ROW(A2:A))), A2:A)))
  • --(ROW(A2:A) >= TRANSPOSE(ROW(A2:A)))生成布尔矩阵,标记当前行及之前的所有行
  • MMULT将这个矩阵和A列的值相乘,得到逐行的累计和
  • IF(A2:A="", "", ...)过滤A列的空白行,避免出现不必要的0

这两个公式都不需要拖拽,当A列新增数据时,范围会自动扩展,和你用ARRAYFORMULA+VLOOKUP实现动态匹配的逻辑一致。

内容的提问来源于stack exchange,提问作者user3347814

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:14:55