关于Countif,不单是单条件计数,还有这3个高能用法
关于函数Countif,大多数的亲和小编一样,都认为它是计数函数,其实这个认识没错,Countif函数确实是计数函数,但其衍生出来的3个高能用法,才是精髓。
一、Countif——基本用法
功能:计算指定区域中满足指定条件的单元格个数。
语法结构:=Countif(条件范围,条件)。
目的:按【性别】统计人数。
方法:
在目标单元格中输入公式:=COUNTIF(E3:E12,J3)。
解读:
Countif函数也被称为单条件计数函数,和Count、Countifs、Countblank等函数都有计数功能。
二、Countif——不一样的序号
目的:按【部门】对【员工姓名】填充序号。
方法:
在目标单元格中输入公式:=COUNTIF(C$3:C3,C3)。
解读:
1、公式=COUNTIF(C$3:C3,C3),从根本上来说,还是计数,但对参数的引用发生了变化,条件范围为混合引用。
2、条件范围C$3:C3,对应的条件为C3,随着单元格的下移,条件范围C$3:C4,对应的条件为C4……以此类推,条件范围C$3:C12时,条件为C12,无论怎么变化,开始计数的条件范围都从C3单元格开始,也就是统计从C3单元格开始到当前中符合指定值的个数。从而对相同部门的值实现了逐步+1的功能,筛选之后一眼便可看出该部门的人数。
三、Countif——计算不重复的数
目的:统计【部门】数和【学历】数。
方法:
在目标单元格中输入公式:=SUMPRODUCT(1/COUNTIF($C$3:$C$12,$C$3:$C$12))、=SUMPRODUCT(1/COUNTIF($G$3:$G$12,$G$3:$G$12))。
解读:
要理解上述公式,首先要理解COUNTIF($C$3:$C$12,$C$3:$C$12),其作用就是统计第二个$C$3:$C$12范围中的每个值在第一个范围$C$3:$C$12中出现的次数,即返回{2,2,2,2,2,2,2,2,2,2},然后1/{2,2,2,2,2,2,2,2,2,2},即返回{0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5},然后返回给Sumproduct函数,即对每个元素求和,返回值5。
四、Countif——提取不重复值。
目的:分别提取所有【部门】和【学历】。
方法:
在目标单元格中输入公式:=INDEX(C:C,2+MATCH(,COUNTIF(J$2:J2,C$3:C$12),))&''、=INDEX(G:G,2+MATCH(,COUNTIF(K$2:K2,G$3:G$12),))&''并用Ctrl+Shift+Enter填充。
解读:
1、首先利用Countif函数,在公式所在位置的上方单元格区域中,分别查找C$3:C$12或G$3:G$12单元格区域中每个值的个数。返回一个由0和1构成的数据,如果C$3:C$12或G$3:G$12单元格区域中的值在公式上方单元格区域中出现过,就返回1,否则返回0;
2、从Countif函数的参数引用中可以得知,条件区域是可以扩展的区域,公式的提取结果会被重复利用。
3、再利用Match函数,在Countif函数返回的数据中查找第一个0的位置,也就是查找首次出现的数据所在的位置。
4、由于数据表的标题行占了一行,将这个数字+1,就是需要提取的不重复数据在数据表中列的位置。
5、最后利用Index函数,提取相应位置的值。