使用Excel SUMPRODUCT函数计算唯一值的出现频率
实现Excel中唯一组合的频率判断(1=唯一,0=重复)
嘿,你的思路已经很对啦!你用的SUMPRODUCT其实已经能算出当前行B、C列组合的出现次数,只需要加一步判断就能得到你要的1/0结果。
方法一:基于你现有公式的优化
把你的公式套进判断逻辑里,直接输出目标结果:
=IF(SUMPRODUCT(--(B:B=B2), --(C:C=C2))=1, 1, 0)
或者更简洁的写法(利用--把布尔值直接转成数字):
=--(SUMPRODUCT(--(B:B=B2), --(C:C=C2))=1)
- 细节解释:
SUMPRODUCT(--(B:B=B2), --(C:C=C2))会统计整个B、C列中,和当前行B2、C2完全匹配的行数; =1用来判断这个计数是否为1(也就是组合唯一),得到TRUE/FALSE的布尔结果;- 前面加
--是把布尔值转换成1(对应TRUE)或0(对应FALSE),刚好符合你的需求。
方法二:用COUNTIFS更直观高效
其实多条件计数场景下,COUNTIFS语法更简洁,运行效率在大数据量下也会更优:
=--(COUNTIFS(B:B, B2, C:C, C2)=1)
COUNTIFS原生支持多条件匹配计数,理解起来更直接,和上面的SUMPRODUCT写法效果完全一致。
使用方式
把公式放在你要输出结果的单元格(比如D2),然后下拉填充到整列,每一行都会自动判断对应B、C组合是否唯一,输出1或0。
内容的提问来源于stack exchange,提问作者Kalenji




