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

Excel技术问询:筛选条件下基于C列唯一值的G列求和

解决方案

核心问题分析

你之前的公式存在逻辑偏差:

  • SUM(UNIQUE(FILTER(G:G, (C:C)*(B:B=I2)))) 是对G列去重后求和,而非基于C列唯一值筛选对应G列,完全偏离需求
  • SUM(IF(Frequency)) 未正确关联「B列等于I2」的筛选条件与C列唯一值的匹配关系

针对不同Excel版本的正确公式

1. Excel 365/2021(支持动态数组)

用XLOOKUP+UNIQUE+FILTER组合,逻辑清晰易维护:

=SUM(XLOOKUP(UNIQUE(FILTER(C:C, B:B=I2)), C:C, G:C, "", 0, 1))

公式拆解:

  • FILTER(C:C, B:B=I2):筛选出所有B列等于I2的C列值
  • UNIQUE(...):对筛选后的C列值去重,得到唯一值列表
  • XLOOKUP(...):为每个唯一C值匹配对应的G列值(第6参数1表示取第一个匹配的G值)
  • SUM(...):对匹配到的G列值求和

2. 旧版Excel(不支持动态数组)

使用数组公式(需按Ctrl+Shift+Enter确认输入):

=SUM(IF(FREQUENCY(IF(B:B=I2, MATCH(C:C, C:C, 0)), ROW(C:C)-ROW(C1)+1), G:C))

公式拆解:

  • IF(B:B=I2, MATCH(C:C, C:C, 0)):仅保留B列等于I2的行,返回对应C列值在整列中的首次出现位置
  • FREQUENCY(...):标记首次出现的C值(返回1),重复出现的返回0
  • IF(..., G:C):仅提取首次出现的C值对应的G列值
  • SUM(...):对提取出的G列值求和

3. 若需求为「每个唯一C值对应的G列总和」

如果你的真实需求是:对B列等于I2的行,按C列分组求和后再汇总(注:此结果等价于直接SUM(FILTER(G:G,B:B=I2)),仅当需要单独查看分组结果时有用),可使用:

=SUM(SUMIFS(G:C, B:C, I2, C:C, UNIQUE(FILTER(C:C,B:B=I2))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:41:17