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

Excel中如何按指定条件计算固定起始行到当前行的累计和

原有公式错误说明

你写的公式存在两个核心问题:

  • SUMIF($J$3:J53,J53)参数顺序完全错误:SUMIF的语法是(条件判断区域, 匹配条件, 求和区域),你把J列的生产值区域当成了条件判断区域,匹配值写了当前行J列的生产数,实际是在累加所有和当前行生产值相等的单元格,完全没有关联B列项目ID、AC列状态两个判断条件。
  • 用COUNTIF(AC53,1)判断当前行AC列值是否为1的写法冗余,直接做等值判断计算效率更高。
正确公式(以第53行写入、向下整列填充为例)

目前所有主流Excel版本(2007及以后)都支持多条件求和函数SUMIFS,直接用下面的公式即可完全匹配需求:

=IF(AC53=1,SUMIFS($J$3:J53,$B$3:B53,B53,$AC$3:AC53,1),0)

公式逻辑拆解

  • 最外层IF(AC53=1,...,0):先判断当前行successornot值是否为1,不是1直接返回0,和你预期结果中AC列为0的行全部返回0的逻辑一致。
  • 核心SUMIFS多条件求和部分:
    • 第一参数$J$3:J53:实际求和区域,固定从J3起始到公式所在当前行,起始单元格用绝对引用锁死、当前行锁列不锁行,下拉填充时会自动扩展累计范围。
    • 第二、三参数$B$3:B53,B53:第一个判断条件——累计范围内B列项目ID和当前行B列ID一致。
    • 第四、五参数$AC$3:AC53,1:第二个判断条件——累计范围内对应行的successornot值为1,只累加符合状态要求的生产值。
结果校验

将公式代入你给出的示例表,返回结果和预期完全一致:

Projectid(B)successornot(AC)production(J)公式返回结果
112020
114060
111070
20200
204000
312020
4010
50240
60500
711010
714050
712070
旧版Excel兼容写法

如果你使用的是2003及更早不支持SUMIFS的Excel版本,可以用SUMPRODUCT实现同样效果:

=IF(AC53=1,SUMPRODUCT(($B$3:B53=B53)*($AC$3:AC53=1)*$J$3:J53),0)

注意:使用SUMPRODUCT时不要引用整列数据,保持上述逐行扩展的范围写法即可,否则会大幅降低表格计算速度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:30:53