统计某一列不重复的个数(如何统计一列中不同内容的个数)
在做数据统计时,求出不重复的数据是经常用到的,如何求出某区域的不重复数据呢?下面我将给出三种办法,读者可以试着根据自己的习惯,利用自己喜欢的方法进行计算。
实例:求某一区域内不重复的数据个数,如求A1:A10范围内不重复数据的个数,某个数重复多次出现只算一个。下面将就三种计算方法做详细的讲解:
一是利用数组公式:
=SUM(1/COUNTIF(A1:A10,A1:A10))
输入完公式后按Ctrl Shift Enter键,让它自动加上数组公式符号"{}"。
公式讲解:
COUNTIF 计算满足条件的单元格个数
函数定义:用来对搜索指定条件的单元格(即参数)的计数.即只求和被满足条件的单元格计数
使用格式:COUNTIF(range,criteria)
格式简义:COUNTIF(要找的内容所在的区域,要找的内容)
参数定义:
range为需要计算其中满足条件的单元格数目的单元格区域,即(范围)。
criteria为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。
下面看看实例:
上面的例子中,公式
SUM(1/COUNTIF(A1:A10,A1:A10))先计算数组COUNTIF(A1:A10,A1:A10)相当于在A1:A10单元格中先后差A1,A2,A3,A4,A5,A6,A7,A8,A9,A10的个数,得到{1;1;1;1;2;1;2;2;2;1}再倒数求和,即是不重复的数字个数。如C4的返回结果。
二是利用乘积求和函数
公式:
=SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100))
SUMPRODUCT用途:在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
语法:SUMPRODUCT(array1,array2,array3,...)
参数:Array1,array2,array3,...为2至30个数组,其相应元素需要进行相乘并求和。
实例:公式"=SUMPRODUCT({3,4;8,6;1,9},{2,7;6,7;5,3})"的计算结果是156。
其实这个函数和第一个例子的意义是一样的,只不过是求得倒数后利用SUMPRODUCT函数与1的乘积再相加后得到的结果,如下截图:
三是用数据透视表
我们先给上述数据加个行头,然后选中这些数据,含行头,对这些数据做数据透视表,此时会得到这些数据的名称列和每个数据的个数,那么数据的名称肯定就是不重复的数值了,如下面的D列,很快就可以知道是8个数值。
我之前提过,函数的使用要切合自己的习惯,不是越简单越好。比如我自己,在做类似的排重个数的计算时,用的最多的是第三种,虽然好像是复杂了很多,但是我的习惯就是用第三种方法,做数据透视表。
今日内容回向:
1 计算某区域不重复的数据有几种办法?
2 两种函数办法主要利用了数组,其中的关键是什么呢?
3 利用数据透视表法求时,主要是利用了数据透视表的行标签不重复的特性,对于行标签的个数或者是求和的计算是否可以忽略?