Countif函数只用来计数?那就真的Out了,这3个技巧才是高能用法
函数Countif的功能是单条件计数,计算指定区域中符合条件的单元格数;语法结构为:=Countif(条件范围,条件);大部分的亲并不陌生,但如果你用Countif函数只是单条件计数,那就真的Out了。
除了单条件计数外,还可以生成不一样的序号、提取不重复人数等……这些技巧才是Countif函数的高能用法。
一、基础案例。
目的: 按“性别”统计员工人数。
方法:
在目标单元格中输入公式:=COUNTIF(E3:E12,K3)。
解读:
公式中,E3:E12为条件范围,K3为条件,就是计算E3:E12中等于K3值的个数。
目的:按“学历”统计员工人数。
方法:
在目标单元格中输入公式:=COUNTIF(G$3:G$12,K3)。
解读:
由于有多个统计区域,所以条件范围G3:G12中的行需要绝对引用,但条件要随着行的变化而变化,所以要相对引用。
二、高能技巧。
(一)按部门填充No(序号)。
方法:
在目标单元格中输入公式:=COUNTIF(C$3:C3,C3)。
解读:
公式的含义为统计部门中当前部门的个数,因为要填充的No(序号)是从1递增的,所以每次计算当前部门值的数量时都从开始单元格C3算起,所以行要绝对引用。
(二)计算部门数(不重复值的个数)。
方法:
在目标单元格中输入公式:=SUMPRODUCT(1/COUNTIF(C3:C12,C3:C12))。
解读:
1、当Sumproduct函数的参数为一维数组时,直接对数组元素进行求和。
2、公式=SUMPRODUCT(1/COUNTIF(C3:C12,C3:C12))中,首先计算1/COUNTIF(C3:C12,C3:C12)的值,形成一个1维数组,然后利用Sumproduct函数对数组元素进行求和运算。
(三)提取部门名称(不重复值)。
方法:
1、在目标单元格中输入公式:=INDEX(C:C,2+MATCH(,COUNTIF(K$2:K2,C$3:C$12),))&"", 并用Ctrl+Shift+Enter填充。
2、向下拖动填充其他单元格区域。
解读:
1、公式中,首先利用Countif函数,在公式所在位置上方的单元格区域中,分别查找C$3:C$12单元格区域中每个值的个数,如果C$3:C$12单元格区域中的值在公式上方的单元格区域中出现过,就返回1,否则就返回0。
2、在第一次的计算中,Countif的计算结果为{0,0,0,0,0,0,0,0,0,0},然后用Match函数定位0在Countif函数返回结果中的位置,Match函数返回1。
3、公式更新为:=Index(C:C,2+1)&"",自然返回“生产部”。
4、依次类推,得到其他值。