统计不重复值个数,对新手来说一直是个难题,今天兰色提供3种不同的方法,另外还有让人头痛的多列和条件统计不重复个数的公式,同学们一定要收藏起来备用,用时再查找就很难了。 一、Countif法 公式:E3 =SUMPRODUCT(1/COUNTIF(A2:A10,A2:A10)) 原理:逐个统计每个值在区域的总个数,然后用1除,个数2变成1/3,个数为3变成1/3,相同的类加在一起还是值为1。 注意:Countif引用区域只能是区域,不能是数组。 二、Match函数法 公式:E4 =SUMPRODUCT(N(MATCH(A2:A10,A2:A10,)=ROW(A2:A10)-1)) 原理:在A列逐个查找自已的位置,返回的行号是否就是现在的行号(如果前面行有,返回的行号肯定小于现在值所在的行数),用N转换成值,然后用Sumproduct函数求和 三、Frequency法 公式:E7 =COUNT(1/FREQUENCY(B2:B10,B2:B10)) 原理:Frequency函数是统计数字出现的频率,如果第一次出现会返回个数,第二次出现返回0,1/FREQUENCY() 数字还是数字,0转换成错误值。Count可以统计数字的个数。 注意:只能统计数字 四、 多列 计算不重复个数 【例】根据A和B列统计不重复的个数。 只需要用match方法中把区域连接在一起。 =SUMPRODUCT(N(MATCH(A2:A7&B2:B7,A2:A7&B2:B7,0)=ROW(A2:A7)-1)) 五、根据条件求不重复个数 添加条件后再计算唯一值个数就很难了。 【例】要求计算北京A产品出现次数,型号相同只计1次。 公式:E11 =SUM(N(MATCH(IF((A2:A8='北京')*(B2:B8='A'),C2:C8),IF((A2:A8='北京')*(B2:B8='A'),C2:C8),0)=ROW(C2:C8)-1))-1 原理:先用IF和条件把不符合条件的转换为FALSE,其他的保留原值,然后再套用Match方法计算不重复个数。-1 是因为数组包括FALSE项,除去它才是真正的不重复个数。 说明:如果是数值不重复个数,可以用()*()代替IF( 判断。 统计不重复值还有其他方法,欢迎大家一起补充。(公式一定要验证后再上传) |
|