ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 统计不重复值的三种解法简介

统计不重复值的三种解法简介

作者:绿色风 分类: 时间:2022-08-18 浏览:202
楼主
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
感谢分享。支持一下。。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap