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

Excel多条件统计问题:COUNTIFS公式无法实现跨列表多条件计数

解决Excel双条件统计(含多值匹配)的问题

我懂你的需求——你已经能用COUNTIFS统计特定Sub ID的出现次数,但现在需要再加一个条件:统计目标列中属于另一列表任意值的记录总数,对吧?原来的COUNTIFS只能处理单个条件值,没法直接匹配多值列表,下面给你两种实用的解决方案,适配不同Excel版本:

方法1:兼容所有Excel版本(用SUMPRODUCT)

如果你的Excel版本比较旧(比如2019及之前),推荐用SUMPRODUCT结合MATCH来实现多值匹配:

=SUMPRODUCT((Data!A:A=[@[Sub ID]])*(ISNUMBER(MATCH(Data!B:B, List!C:C, 0))))

公式拆解:

  • (Data!A:A=[@[Sub ID]]):生成一个布尔数组,Data表A列中等于当前行Sub ID的位置返回1,否则返回0
  • ISNUMBER(MATCH(Data!B:B, List!C:C, 0)):检查Data表B列的值是否存在于List表C列的允许列表中,存在则返回1,否则0
  • 两个数组相乘后,SUMPRODUCT会把所有同时满足两个条件的1相加,得到最终符合条件的总数

方法2:Excel 365/2021专属(简洁版)

如果你用的是支持动态数组的Excel版本,可以直接用SUM+COUNTIFS的组合,写法更简洁:

=SUM(COUNTIFS(Data!A:A, [@[Sub ID]], Data!B:B, UNIQUE(List!C:C)))

公式说明:

  • COUNTIFS会针对UNIQUE(List!C:C)里的每个值,分别统计符合Sub ID条件的记录数,返回一个结果数组
  • SUM把这个数组里的数值相加,得到总计数
  • 用UNIQUE是为了避免List列表中有重复值时重复统计,如果你的列表本身没有重复,也可以直接写List!C:C

注意事项

  • 如果List列表中有空单元格,建议先过滤掉,比如把List!C:C改成List!C1:C100(指定非空的范围),或者在MATCH里加条件:MATCH(Data!B:B, IF(List!C:C<>"", List!C:C), 0)
  • 尽量不要用整列引用(比如A:A),如果数据范围固定,用具体的范围(比如Data!A1:A1000)能提升公式运行速度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:51:23