Excel公式逻辑详解:SUMPRODUCT如何计算C3:C15区域的唯一值?
Excel 唯一值计数公式原理解析
你给出的=SUMPRODUCT((C3:C15<>"")/COUNTIF(C3:C15,C3:C15&""))是Excel 365版本推出UNIQUE函数之前,非常常用的非空唯一值计数方案,计算逻辑拆分如下:
分步运算逻辑
- 第一步:统计每个值的出现次数
COUNTIF(C3:C15,C3:C15&"")属于数组运算,会遍历C3:C15的每一个单元格,返回该单元格内容在整个C3:C15区域内的出现次数。末尾的&""是兼容处理逻辑:避免空单元格参与统计时抛出错误,统一把单元格内容转为字符串格式计数。
比如你提供的测试数据里,Customer1一共出现3次,那C3:C15里所有存储Customer1的单元格,这一步返回的结果都是3;只出现1次的Customer5,对应位置返回结果为1。 - 第二步:过滤空值
(C3:C15<>"")是布尔判断,非空单元格返回1,空单元格返回0,作用是排除区域内的空值,避免空值被误算为一个独立的唯一值。 - 第三步:分组换算求和基数
前两步的结果做除法后,每个非空值对应的结果都是1/该值出现次数:出现3次的值,每一行对应结果是1/3,3行加起来刚好是1;出现1次的值,对应结果就是1。所有结果相加的总和刚好等于区域内的唯一值总数。 - 第四步:输出最终结果
SUMPRODUCT函数会自动处理数组运算,不需要额外按数组公式快捷键,直接把第三步得到的所有结果求和,输出最终的唯一值数量。
测试数据验证
你提供的测试数据里,非空唯一值共6个(Customer1到Customer6),代入公式计算的总和为:
3*(1/3) + 2*(1/2) + 3*(1/3) +3*(1/3) +1*1 +1*1 = 1+1+1+1+1+1=6,和实际唯一值数量完全匹配。
内容的提问来源于stack exchange,提问作者Subham Saha
相关产品推荐
相关产品推荐

