前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >摆脱手工计数,用它提高工作效率10倍

摆脱手工计数,用它提高工作效率10倍

原创
作者头像
猴子聊数据分析
修改2020-03-23 10:59:34
1.4K0
修改2020-03-23 10:59:34
举报

在职场办公中,我们经常会有这样的需求:需要根据特定的条件对数据进行计数。比如统计某部门的人数、比如判断满足条件的记录是否在数据表中存在。

这时候,countif函数简直不要太好用。所以,今天就给大家介绍一下countif函数的用法。想要摆脱统计数据到两眼发黑,就让countif来帮你计数吧。

一、什么是计数函数countif?

count,在英语里是统计,计数的意思。if,是如果的意思。

两者结合起来,就是说,在指定区域中,如果满足某条件,就对其进行计数。countif函数语法如下:

代码语言:javascript
复制
countif(range,criteria)

这个函数只有两个参数。

第一个参数range:是要对其进行计数、统计的区域;

第二个参数criteria:是进行计数的条件。可以是数字、表达式、单元格引用或文本字符串。

所以,针对第二个参数的延伸,在实际工作中,countif就可以满足多种计数需求。

二、如何使用?

  • 第二个参数是数字
代码语言:javascript
复制
=countif(A:A,10)

统计在A列中有多少个10。

  • 第二个参数是表达式
代码语言:javascript
复制
=countif(A:A,">10")

统计在A列中大于10的有多少个。

  • 第二个参数是单元格引用
代码语言:javascript
复制
=countifA:A,C1)

统计在A列中,与C1内容相同的有多少个。

代码语言:javascript
复制
=countif(A:A,">"&C1)

统计在A列中大于C1单元格的有多少个。

注意上面的条件写法:如果是和指定的单元格数值进行比较,需要用英文引号把运算符括起来,同时还要用文本连接符连接指定的单元格。

  • 第二个参数是文本字符串
代码语言:javascript
复制
= countif(A:A, "王??")

统计在A列中,姓“王”的,且名字是3个字的人员数量。所以王老五,王小二等,只要是姓“王”的,而且名字是3个字的,都会被纳入统计,而像“王明”这种就不会被算进来的。

(注意:使用通配符对文本数据进行统计时,*代表任意多个字符;?代表任意单个字符。)

三、实战案例

通过上面的介绍,大家都清楚了countif函数的常规用法,那下面通过案例演示来实操一下吧。

  • 统计各所属部门的招聘数量

如下图所示,是一份招聘信息表。有公司全名、所属部门、教育要求、薪水等列。下面的公式将分别针对所属部门来实现人数的统计。

在I2单元格的统计公式如下:

代码语言:javascript
复制
=countif($B$2:$B$30,H2)

对这个公式怎么理解呢?

第一个参数为单元格B2:B30,也就是对“所属部门”这一列进行统计。

那我们统计什么呢?

第二个参数就是统计的条件。第二个参数是单元格H2,也就是要统计指定区域里,以H2单元格内容为条件的计数。因为H2单元格里的内容是“运营部”,也就是对“运营部”计数。

因为公式还要往下填充,还要继续统计指定区域里其它条件的计数,如“技术部”、“产品部”、“设计部”等的计数。这样就把各部门的招聘数量统计出来了。

对countif函数有了上面的热身后,如果要你统计薪水高于15000的有多少个,你是不是也能秒杀了?

因为countif函数的第二个参数,可以使用表达式,所以你只需要在这个参数中使用比较运算符输入字符串表达式即可,如输入条件“>15000”。注意,一定要用英文的双引号括起来。

比如,要统计薪水列里,薪水大于15000的,统计公式如下:

代码语言:javascript
复制
=countif($E$2:$E$30,">15000")

也就是说,对“薪水”列,即案例中的“E2:E30”区域里的薪水进行判断,判断的条件是“>15000”。公式将统计出招聘表里薪水大于15000的数量,结果为12。

四、多条件计数函数countifs

还是同一份招聘信息表,下面的函数公式统计的是不同所属部门里薪水大于15000的招聘人数。如图:

在I3单元格输入统计公式如下:

代码语言:javascript
复制
=countifs($B$2:$B$30,H3,$E$2:$E$30,">15000")

▲向左滑动可完整查看

这公式怎么理解呢?

公式中用的是countifs函数。countifs函数与countif函数唯一的区别在于,counif是单条件计数,而countifs是多条件计数。

我们可以用countif来单条件计数,如针对“薪水”列,统计大于15000的有多少个,公式为:

代码语言:javascript
复制
=countifs($E$2:$E$30,">15000")

我们可以用countifs函数来多条件计数,如针对“所属部门”列和“薪水”列,来统计指定部门中薪水大于15000的有多少个,公式为:

代码语言:javascript
复制
=countifs($B$2:$B$30,H3,$E$2:$E$30,">15000")

▲向左滑动可完整查看

这两个条件是“并且”的关系,也就是说,统计出的是“运营部薪水大于15000的”的数量。

好了,废话不多说。同样是上面的招聘信息表,如果要你统计薪水大于15000且小于20000的数量,函数公式应该如何写呢?自己动脑想一想,再看答案哦。

答案如下:

代码语言:javascript
复制
=countifs($E$2:$E$30,">15000",$E$2:$E$30,"<20000")

▲向左滑动可完整查看

当然,因为前后两个计数区域是一样的,所以在这里也可以用countif函数来写:

代码语言:javascript
复制
=countif($E$2:$E$30,">15000")-countif($E$2:$E$30,">20000") 

▲向左滑动可完整查看

在薪水大于15000的记录数中一定包含了薪水大于20000的,所以两者相减,就能得出大于15000且小于20000的计数。

五、有哪些注意事项?

countif函数虽好用,但是,在使用时要特别注意,当countif遇到身份证号码时,却会出现这样的bug。

如下图是一份员工身份登记表,我们需要检查身份证号码是否重复录入。

如果直接对身份证号码列进行统计计数,如C2统计公式如下:

代码语言:javascript
复制
=COUNTIF($B$2:$B$11,B2)

统计结果大于1的,即出现的次数大于1,就判断为重复。如上图,结果显示很多身份证出现了重复。但是手工检查发现并非如此。

我们把那些被判断为重复的高亮显示,来看清楚一下:

为什么系统会把“猴子”和“孙大圣”的身份证判断为重复呢?这两个身份证号码明明是不一样的!

原因在于,虽然案例演示中的身份证号码列为文本型数值,但是,在countif函数中,文本型数值和数值型数据都会被识别为数值进行统计。

而在Excel里,最多只能保留15位有效数字,超过15位的数值,全部归置为0。所以对于有18位数值的身份证号码来说,后3位,就全都被默认为0。因此才会导致countif函数误将猴子和孙大圣的身份证号码识别为相同的号码。

那么这类问题要怎么解决呢?必须在countif函数的第2个参数中,使用通配符,使其强行转为文本再进行统计,如修正后D2的公式为:

代码语言:javascript
复制
=countif($B$2:$B$11,B2&"*")

相当于告诉countif函数:我要统计的内容是以B2单元格开头的文本哦,这时候countif就会乖乖地去执行任务啦。

如下图,具体的检查结果显示,仅有高小明和王老五的身份证号码重复以外,其他身份证码号都是准确无误的。

六、总结

以上就是countif函数的用法介绍啦,纸上得来终觉浅,所以,小伙伴们看完后一定要上手实操哦。

对于学习excel里的函数,我有个小tips:对于长得差不多的函数,其实可以放在一起学,比如在这里我们介绍的是countif函数。那么,sumif函数,averageif函数,是不是也可以触类旁通呢。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档