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

如何用ARRAYFORMULA实现A列非空时自动求和对应行数据

Google Sheets 逐行求和(仅A列有日期时)

你的公式=ARRAYFORMULA(IF(A2 = "", "", SUM(C2:2)))失效的原因是:SUM(C2:2)会直接计算整行的总和,无法配合ARRAYFORMULA实现逐行迭代计算。以下是两种可行的解决方案:

方法1:BYROW函数(新版Google Sheets适用)

将公式输入到B2单元格,自动遍历所有行:

=BYROW(A2:A, LAMBDA(row, IF(ISBLANK(row), "", SUM(INDIRECT("C"&ROW(row)&":"&ROW(row))))))
  • 逻辑:遍历A列每一行,若A列单元格非空,则对该行从C列到末尾的所有单元格求和;若为空则返回空值。
  • 优势:写法直观,支持动态列数(不管数值列有多少,都会自动覆盖)。

如果想限定数值列范围(比如只到Z列),可以改用:

=BYROW(A2:A, LAMBDA(row, IF(ISBLANK(row), "", SUM(OFFSET(row, 0, 2, 1, COLUMNS(C:Z))))))

方法2:MMULT函数(兼容旧版Sheets)

如果你的Sheets版本不支持BYROW,用这个公式输入到B2单元格:

=ARRAYFORMULA(IF(A2:A="","",MMULT(N(C2:Z), TRANSPOSE(COLUMN(C2:Z)^0))))
  • 逻辑:通过矩阵乘法实现逐行求和,N(C2:Z)将空值转为0,TRANSPOSE(COLUMN(C2:Z)^0)生成全1数组,两者相乘后求和得到每行的总数。
  • 注意:如果数值列超过Z列,把公式里的C2:Z替换成更大的范围(比如C2:ZZ)。

示例效果

应用公式后,你的表格会变成:

日期总计col1col2
03/02/202524915234
02/02/202527522
01/02/202526233
31/01/2025234234

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:47:17