COUNTIF函数是一个比较简单的函数,但真正使用好了也是非常实用的。countif函数的功能就是用来计算个数,表示计算区域中满足给定条件的单元格的个数。
countif函数的语法为:COUNTIF(range,criteria),其中Range参数:是为需要计算其中满足条件的单元格数目的单元格区域,Criteria参数:为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。
下图是一个电脑配件销售表,本次分享我们要完成下面几个知识点的学习。
第一,统计上图数据源中“数量”大于30的个数以及“单价”小于100的个数。
先看看“数量”大于30的个数,套用COUNTIF函数的语法:countif(区域,条件),得出公式:=COUNTIF(D6:D35,">30"),结果为:8个。
说明:在公式中的> < = 都要用" ",而引用单元格就不需要 " "。
此题另外还可以使用数组公式:=COUNT(IF(D6:D35>30,1)),按下【Ctrl】+【Shift】+【Enter】三键,完成数组的输入。
也可以使用这样的公式:=COUNTIF(D6:D35,">"&D7)。“&”此符号就是文本粘贴符,后面的是单元格地址,意思就是连接D7单元格的内容。大家可以在工作表中查看D7单元格的内容就是30。如果大于 后面没有函数,就没有比对的目标,所以要用&D7。
有一种查看公式中部分内容的方法,就是按下F9键,俗称“抹黑”。 F9键在学习函数与公式中,对我们来说,有很大的帮助作用,帮助我们理解公式。
在本公式中,如果在公式编辑栏选中后面的">"&D7,按下F9键,可以看出变为了">30",就和设计的第一种公式一样的,即:=COUNTIF(D6:D35,">30")
当然解决一个问题,设计的公式也许不只一种,只要大家根据自己的理解,灵活使用就可以了,得出的答案都是一样的。
用同样方法可以得出“单价”小于100的个数,公式为:=COUNTIF(D6:D35,"<100"),得到正确答案为:30。
第二,统计上图数据源中,“营业部”中含“河”字的个数,以及在“商品”这列中是否有键盘。
要求解出答案,首先,需要领会COUNTIF 函数中通配符的使用规则,COUNTIF 函数是支持通配符的,在COUNTIF函数中可以引用通配符。其中通配符?号代表单个字符, *号代表多个字符。
因此,统计“营业部”中含“河”字的个数,公式为:=COUNTIF(A6:A35,"*河"),得到正确答案为:12。
另外一种公式写法:=COUNTIF(A6:A35,"*河*"),也可以得到答案。
其实,通配符*号和find函数差不多,因此还可以这样设计公式:=COUNT(FIND("河",A6:A35)),然后按下【Ctrl】+【Shift】+【Enter】三键,完成数组的输入。
在“商品”这列中是否有键盘,可以这样设计公式:=IF(COUNTIF(B6:B35,"键盘"),"是","否")。
第三,一次行列出营业部中“天河”、“黄埔河”、“黄埔”、“越秀”、“荔湾”、“超秀”出现的次数。
对于一次性统计多单元格出现次数,可以使用数组公式。方法是:先选中L19:L24单元格区域,然后在编辑栏中输入公式=COUNTIF(A6:A35,K19:K24),然后按下【Ctrl】+【Shift】+【Enter】三键,完成数组的输入。得到答案为:9、3、4、7、6、1次。
另外此题,也可以使用普通公式:=COUNTIF($A$6:$A$35,K19),然后往下拉,复制公式即可。
第四,统计“销售日期”列下面的日期总共出现次数。
计算数据源中日期总共出现的次数,也需要用到数组公式,这个公式在网上也是个经典例子。公式为:=SUM(1/COUNTIF(C6:C35,C6:C35)),然后三键结束。结果为:30。
公式分析:公式中,COUNTIF(C6:C35,C6:C35)的结果为1,大家可以在上面公式中把这部分抹黑,得到结果为1。就是统计C6:C35每一个单元格内容出现的次数。
在将公式中1/COUNTIF(C6:C35,C6:C35)部分抹黑,执行公式,得到数组形式的{1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1},一共有30个1。1/就是每一个数值占1的百分比,来相加。抹黑查看完公式结果,可以按Esc键返回公式。最后再用SUM 函数合计。
此题,还可以有下面两种公式设计,都可以实现结果。
第一:=SUM(--(MATCH(C6:C35,C6:C35,)=ROW(C6:C35)-5)),三键结束。
第二,设计普通公式:=COUNT(1/FREQUENCY(C6:C35,C6:C35))。
有网友说到此题也可以使用公式:=COUNTIF(C6:C35,"<>0")。这个公式实质有点问题,只是算C6:C35区域的数据,在本题中,虽然答案是一样的,是因为日期不重复,如果源数据中有两个相同的日期,结果就不对了。大家可以更改一下源数据里面的日期做个小试验。
第五,统计“商品”列中不重复的有哪几个?
此题可以理解为提取不重复值,最简单的方法是使用高级筛选,操作步骤:单击菜单“数据”——“筛选”——“高级筛选”,在“方式”下面选中:将筛选结果复制到其他位置,列表区域为:$B$6:$B$35,复制到:K32,勾选“选择不重复的记录”。
说明:高级筛选的不好之处,就是工作表中的源数据更新后,筛选出来的结果是不会更新的。
本题也可以使用公式来求解。下面设计的三种公式均能实现最终结果。
公式一:=INDEX($B$6:$B$35,MATCH(,COUNTIF($L$31:L31,$B$6:$B$35),)),然后三键结束公式输入,下拉。
公式二:=INDEX($B$6:$B$35,SMALL(IF(MATCH($B$6:$B$35,$B$6:$B$35,)=ROW($B$6:$B$35)-5,ROW($B$6:$B$35)-5,1000),ROW(A1))),然后三键结束公式输入,下拉。
公式三:=LOOKUP(1,0/(NOT(COUNTIF($K$31:K31,$B$6:$B$35))),$B$6:$B$35),然后往下拉,复制公式,直到出现#N/A错误值。本题的答案是:硬盘,显示器,鼠标。