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

Excel多条件求和:仅统计首次匹配项(排除A:B重复组合)

解决Excel中按组合去重后求和的问题

你的核心需求是:筛选出company列(A列)为"green"且state列(C列)为"CA"的行,仅对company+ee(A:B列)组合的首次出现项的amount列(D列)求和,预期结果200。

之前用=SUMPRODUCT(--(A2:A11="green"),--(C2:C11="CA"),D2:D11)得到300,是因为没对A:B组合去重,重复计算了green+1234的两行数据。

方法一:SUMPRODUCT结合COUNTIFS实现去重求和

直接修改公式,加入首次出现的判断逻辑:

=SUMPRODUCT(--(A2:A5="green"),--(C2:C5="CA"),--(COUNTIFS(A$2:A2,A2,B$2:B2,B2)=1),D2:D5)

公式拆解:

  • --(A2:A5="green") 和 --(C2:C5="CA"):锁定符合基础条件的行
  • --(COUNTIFS(A$2:A2,A2,B$2:B2,B2)=1):通过混合引用(A$2:A2),判断当前行的A:B组合是否是第一次出现(计数为1则是首次)
  • 最后与D列相乘求和,只保留首次出现的符合条件的amount值

代入你的数据验证:

  • 第2行(green+1234):首次出现,加100
  • 第3行(green+1235):首次出现,加100
  • 第4行(yellow+1236):不符合A=green,跳过
  • 第5行(green+1234):非首次出现,跳过
    最终求和结果为200,符合预期。

方法二:Excel 365/2021版本用动态数组公式(更简洁)

如果你的Excel支持动态数组,可以用UNIQUE+XLOOKUP组合:

=SUM(XLOOKUP(UNIQUE(FILTER(A2:B5,(A2:A5="green")*(C2:C5="CA"))),A2:B5,D2:D5,"",0,1))

逻辑说明:

  1. FILTER(A2:B5,(A2:A5="green")*(C2:C5="CA")):先筛选出A=green且C=CA的A:B组合
  2. UNIQUE(...):提取这些组合中的唯一值
  3. XLOOKUP(...):找到每个唯一组合第一次出现对应的D列值
  4. SUM:对这些值求和,得到结果200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:14:52