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

咨询SUMPRODUCT(1/COUNTIF)统计Excel区域唯一值的公式原理

问题:统计单元格区域不同值数量的公式逻辑疑问

我需要统计某一单元格区域内的不同值数量,使用公式SUMPRODUCT(1/COUNTIF(A2:A37,A2:A37))得到了结果,但无法理解该公式的运行逻辑,希望有人帮忙解释:

  • 单独使用COUNTIF时结果为0,SUMPRODUCT(1/COUNTIF)为何能解决问题?
  • COUNTIF的range和criteria参数相同是什么含义?我理解range是查找范围,criteria是查找条件,但当criteria为整个range时,如何指定查找目标?
  • 该公式具体是如何运行的?
解答

1. COUNTIF(A2:A37,A2:A37)的实际作用

当COUNTIF的两个参数为同一个区域时,它会执行数组运算:对区域内的每一个单元格,单独统计该单元格的值在整个区域中的出现次数,最终生成一个和原区域长度一致的数组。
比如你的示例中,若A2:A37里有3个相同值、2个另一个相同值、1个唯一值,那这个COUNTIF返回的数组就会是[3,3,3,2,2,1,...],每个元素对应原单元格值的出现次数。

2. 单独使用COUNTIF返回0的原因

单独在单元格输入COUNTIF(A2:A37,A2:A37)时,Excel不会自动触发数组运算,它会把第二个参数(整个区域)当成单一的查找条件,这种不符合COUNTIF常规单值条件的输入会导致返回0。而SUMPRODUCT本身支持数组运算,无需手动按数组快捷键(Ctrl+Shift+Enter),能自动识别并执行数组计算。

3. SUMPRODUCT(1/COUNTIF(...))的完整运行逻辑

  • 第一步:COUNTIF(A2:A37,A2:A37)生成每个值的出现次数数组,例如[3,3,3,2,2,1]。
  • 第二步:对数组中的每个元素取倒数,得到[1/3,1/3,1/3,1/2,1/2,1]。
  • 第三步:SUMPRODUCT将这些倒数相加:3个1/3相加得1,2个1/2相加得1,1个1得1,总和为3——正好是区域内不同值的数量。
    本质是每个重复值组的倒数和为1,有多少个不同值,最终总和就是多少。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:35:24