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

Google Sheets中用ARRAYFORMULA实现SUMIF范围逐行递增求和

用ARRAYFORMULA实现逐行递增范围的SUMIF累计求和

针对你需要在库存流水表中,用ARRAYFORMULA实现当前行及之前行同品类数据累计求和的需求,提供以下两种可行方案:

方案1:拼接品类与行号的SUMIF写法

直接在目标单元格输入以下公式:

=ArrayFormula(IF(A3:A="",,SUMIF(A3:A&ROW(A3:A),"<="&A3:A&ROW(A3:A),B3:B)))

原理说明:

  • 将A列的品类名称与对应行号拼接成唯一字符串(例如杯子3、杯子4),确保同品类的不同行有区分度
  • SUMIF的条件设置为「拼接后的字符串 ≤ 当前行的拼接字符串」,这样只会统计当前行及之前的同品类数据
  • 外层用IF(A3:A="",,)判断,避免在A列空行生成无效计算结果

方案2:MMULT矩阵乘法写法

如果需要更灵活的逻辑控制,可使用MMULT实现:

=ArrayFormula(IF(A3:A="",,MMULT(N(A3:A=TRANSPOSE(A3:A))*N(ROW(A3:A)>=TRANSPOSE(ROW(A3:A))),B3:B)))

原理说明:

  • N(A3:A=TRANSPOSE(A3:A)):生成一个布尔矩阵,标记哪些行的品类与当前行一致(1为匹配,0为不匹配)
  • N(ROW(A3:A)>=TRANSPOSE(ROW(A3:A))):生成下三角矩阵,标记当前行及之前的所有行(1为符合范围,0为后续行)
  • 两个矩阵相乘后,通过MMULT完成逐行求和,得到当前行及之前同品类的累计值

以上两种公式均支持自动应用到新增行,无需手动下拉,完全替代你之前的手动公式逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:27:36