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

Excel按B列分组匹配BD列分组最大值的公式问题求解

按项目ID分组返回累计产量最大值行的实现方案

核心问题定位

你之前两次编写的公式未达预期,根因是公式中对BD列、B列的引用使用了$BD$3:$BD3这类逐行扩展的半相对范围,仅计算从首行到当前行的区间内的最大值,而非对应项目ID在全表范围内的累计产量最大值,导致中间行提前触发匹配逻辑。

可用公式

公式统一从数据第3行开始输入,输入完成后下拉填充整列即可,根据你的Excel版本选择对应写法:

  • 适用于Excel 2019/365及以上支持MAXIFS的版本
=IF(BD3=MAXIFS($BD:$BD,$B:$B,B3),BD3,0)
  • 适用于Excel 2016及更早不支持MAXIFS的版本
=IF(BD3=SUMPRODUCT(MAX(($B:$B=B3)*$BD:$BD)),BD3,0)

公式逻辑:先锁定全表范围,计算当前行所属项目ID对应的累计产量全局最大值,再判断当前行BD值是否等于该最大值,匹配则返回当前产量值,不匹配则返回0,自动兼容分组最大值为0的场景。

效果验证

套用你提供的样例数据,公式返回结果完全匹配预期:

Projectid(B列)cumulative production(BD列)计算结果
1200
1600
17070
200
200
32020
400
500
600
7100
7400
76060

原有公式的错误点

  • 第一次尝试的SUMIFS公式逻辑不成立:SUMIFS末位参数为求和匹配条件,你传入的MAX($BD$3:$BD3)仅计算到当前行的全量BD最大值,未关联同项目ID的筛选条件,且SUMIFS本身不适合做等值判断返回原值的场景。
  • 第二次尝试的MAXIFS公式引用范围错误:使用逐行扩展的半锁定范围,导致计算到项目分组中间行时,范围仅覆盖到当前行,会把中间值误判为分组最大值返回。

内容的提问来源于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 23:06:22