楼主 gouweicao78 |
统计不重复个数一般有3种解法,主要原理介绍如下: 1、=SUM(1/COUNTIF(A2:A10,A2:A10))——统计A2:A10中不重复值的个数。 【原理】COUNTIF(A2:A10,A2:A10)——得到A2:A10各数据出现的次数组成的数组{3;1;3;1;1;2;3;1;2},并作为分母,分子为1,得到1/{3;1;3;1;1;2;3;1;2},再求和。 则:有3个重复的,每个占 1/3,3个1/3之和就是1,达到了重复值只算1次的目的。 【特点】1、Coutif(数据,数据),函数第一参数必须是对单元格区域的引用,不能为内存数组。2、数据可以是多行多列。 【注意】可能因Excel浮点运算造成误差。 2、=SUM(N(MATCH(A2:A10,A2:A10,0)=ROW(A2:A10)-1)) 【原理】Match精确查找每个数据在数据区第一次出现的位置{1;2;1;4;5;6;1;8;6},并与其对应的行号位置比较,因为只有第一次出现的位置才会一致,所以统计的是不重复个数。 【特点】1、Match(数据,数据,0),数据可以是内存数组,也可以是单元格区域的引用。2、数据必须是单行或单列。 3、=COUNT(1/FREQUENCY(B2:B10,B2:B10))——统计B2:B10中不重复数字的个数 或=SUM(N(FREQUENCY(B2:B10,B2:B10)>0)) 【原理】利用Frequency(数据,数据)统计数值的分布频率{2;0;5;0;0;2;0;0;0;0},第一次出现的数字位置返回数字出现个数,而第2次出现就返回0,因此只要统计非0的个数即可。COUNT(1/FREQUENCY)或SUM(N(FREQUENCY>0))都可以实现。 【特点】1、数据可以是数组和单元格区域的引用。2、数据必须为数值,忽略文本。3、数据可以是多行多列。 |
2楼 tzfen53719 |
顶一下,学习了 |
3楼 jackeroo |
frequency结果比分隔点多一个数值 分隔点有9个数值,那么结果是10个数值的数组。 |
4楼 jchwylmh |
太精彩了! |
5楼 xpm130 |
谢谢总结分享,学习中 |
6楼 刘志文 |
谢谢gouweicao78 版总结分享 |
7楼 mwt |
一看见数组我就头疼,之前我都是用countif+排序得出的不重复值 |
8楼 ljx63426 |
谢谢总结分享,学习中 |
9楼 xiaoyver |
谢谢提供 |
10楼 opelwang |
感谢分享。支持一下。。 |
11楼 gouweicao78 |
统计不重复个数一般有3种解法,主要原理介绍如下: 1、=SUM(1/COUNTIF(A2:A10,A2:A10))——统计A2:A10中不重复值的个数。 【原理】COUNTIF(A2:A10,A2:A10)——得到A2:A10各数据出现的次数组成的数组{3;1;3;1;1;2;3;1;2},并作为分母,分子为1,得到1/{3;1;3;1;1;2;3;1;2},再求和。 则:有3个重复的,每个占 1/3,3个1/3之和就是1,达到了重复值只算1次的目的。 【特点】1、Coutif(数据,数据),函数第一参数必须是对单元格区域的引用,不能为内存数组。2、数据可以是多行多列。 【注意】可能因Excel浮点运算造成误差。 2、=SUM(N(MATCH(A2:A10,A2:A10,0)=ROW(A2:A10)-1)) 【原理】Match精确查找每个数据在数据区第一次出现的位置{1;2;1;4;5;6;1;8;6},并与其对应的行号位置比较,因为只有第一次出现的位置才会一致,所以统计的是不重复个数。 【特点】1、Match(数据,数据,0),数据可以是内存数组,也可以是单元格区域的引用。2、数据必须是单行或单列。 3、=COUNT(1/FREQUENCY(B2:B10,B2:B10))——统计B2:B10中不重复数字的个数 或=SUM(N(FREQUENCY(B2:B10,B2:B10)>0)) 【原理】利用Frequency(数据,数据)统计数值的分布频率{2;0;5;0;0;2;0;0;0;0},第一次出现的数字位置返回数字出现个数,而第2次出现就返回0,因此只要统计非0的个数即可。COUNT(1/FREQUENCY)或SUM(N(FREQUENCY>0))都可以实现。 【特点】1、数据可以是数组和单元格区域的引用。2、数据必须为数值,忽略文本。3、数据可以是多行多列。 |
12楼 tzfen53719 |
顶一下,学习了 |
13楼 jackeroo |
frequency结果比分隔点多一个数值 分隔点有9个数值,那么结果是10个数值的数组。 |
14楼 jchwylmh |
太精彩了! |
15楼 xpm130 |
谢谢总结分享,学习中 |
16楼 刘志文 |
谢谢gouweicao78 版总结分享 |
17楼 mwt |
一看见数组我就头疼,之前我都是用countif+排序得出的不重复值 |
18楼 ljx63426 |
谢谢总结分享,学习中 |
19楼 xiaoyver |
谢谢提供 |
20楼 opelwang |
感谢分享。支持一下。。 |