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

如何结合ArrayFormula与SUMIF实现Google表格动态自动求和

解决方案

你可以使用以下公式实现需求,只需输入一次即可自动对A列非空行计算对应行中第2行表头为TOTAL的列的总和,且适配行/列的增减:

=ArrayFormula(IF(A3:A<>"",SUMIF($2:$2,"TOTAL",INDEX(A3:Z,ROW(A3:A)-ROW(A3)+1,)),""))

公式说明:

  • IF(A3:A<>"", ..., ""):仅对A列非空的行执行计算,空行返回空值
  • INDEX(A3:Z, ROW(A3:A)-ROW(A3)+1,):动态获取当前行的所有列数据(ROW(A3:A)-ROW(A3)+1会生成从1开始的序列,对应A3:A每行的相对行号,从而让INDEX定位到每行的完整数据范围)
  • SUMIF($2:$2,"TOTAL", ...):对第2行中值为TOTAL的列,求和对应行的数值

为什么你之前的公式失效?
  • 第一个公式:=ArrayFormula(if(A2:A243<>"",sumif($2:$2,"TOTAL",3:3),""))
    这里的3:3是固定的第3行范围,不会随数组迭代到下一行,所以所有行都返回第3行的计算结果。

  • 第二个公式:=ArrayFormula(if(A2:A243<>"",sumif($2:$2,"TOTAL",indirect(""&row()&":"&row())),""))
    row()在ArrayFormula中只会返回公式所在行的行号,无法自动迭代生成每行的行号,导致所有行都使用公式所在行的数据计算。

  • 第三个公式:=ArrayFormula(sumif($2:$2,"TOTAL",3:243))
    SUMIF会将3:243整个范围作为单一数据源,返回的是所有行中符合条件的列的总和,而非每行单独的求和结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:42:44