countif函数用法多,坑也不少!

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天接着来聊countif函数。虽然它很好用,也深受小伙伴的喜爱,但是坑也不少,需小心避免。

今天就简单分享一下它坑在什么地方,具体的表现就是会区分数据类型。countif第2参数的格式(数据类型)会限定第1参数的统计范围。
如果第2参数的数据类型是数值,countif只在第1参数的数值单元格中进行统计,而忽略其他类型的数据,比如文本、逻辑值、错误值等。
简单来说,就是第1参数和第2参数的数据类型要匹配才会统计。当然这不是绝对的,需要自己慢慢总结。

下图是我列举的countif的一些用法,对理解区分数据类型很有用,而且还有一些统计真空和假空以及通配符的用法。

其中A2:A13是数据源,包含不同类型的数据,有数值,文本,逻辑值和错误值,以及真空和假空。
A4单元格的6是通过公式产生,是文本型的数字。A6单元格是真空单元格,A8单元格是假空单元格,也是通过公式产生的,是一个空文本。
说一下=COUNTIF(A2:A13,"<9")这个公式(上图红框标记)的结果为什么是3。通常我们认为小于9的个数是4,因为有5,4,6,7四个数。但统计出来的结果就是3。
因为第2参数是数值,只在第1参数的数值单元格中统计小于9的个数。在第1参数的区域中,数值单元格有A2、A3、A5三个单元格,所以只在这3个单元格中统计小于9的个数。
而A4单元格的数据类型是文本,与第2参数的数据类型不匹配,所以把它忽略掉。

下面来看几个案列吧。

1.计算各位同学的成绩排名

在C3单元格输入公式=COUNTIF(B$3:B$12,">"&B3)+1,向下填充,发现结果都是1。正常来说,这个公式是没有问题的。那原因是什么呢?

原因是B列的成绩是文本型的数字。在公式编辑栏中选中countif的第2参数,按F9,结果是">63"。

这样第2参数的数据类型是数值,第1参数的数据类型是文本,不匹配。所以countif最后返回的结果是0,再加1就是1。当把B列的文本型数字转为数值的时候,结果就对了。

2.判断身份证号是否重复

首先要判断各身份证号出现的次数,如果大于1,就重复了;否则没有重复。在C18单元格输入公式=COUNTIF(B$18:B$27,B18),向下填充,发现结果是不对的。蓝色的应该是1次,黄色的应该是2次,结果却都是3次。为什么?

在Excel中,数字的精度是15位,15位以后的数字都会显示为0。这也是为什么身份证号要以文本的形式录入。

如果两个身份证号的前15位是相同的,后三位是不同的,那么它们经countif的运算都会被转化为XXXXXXXXXXXXXXX000,这样它们就变成相同的了。

正确的公式为=COUNTIF(B$18:B$27,B18&"*"),将第2参数的身份证号连接通配符*,强制转为文本,这样经countif的运算就不会将15位之后的数字变为0了。
最后用if函数判断一下,如果countif的结果大于1,那么重复,否则不重复。
3.统计各型号的数量

当统计的区域或条件中包含*或?时,用countif的时候要小心了。在C32单元格输入公式=COUNTIF(B$32:B$36,B32),向下填充。发现结果又㕛叒叕出错了。实际每个型号的数量都是1,20*30的型号却算出3个。为什么?

实际上面的公式就是=COUNTIF(B$32:B$36,"20*30"),第2参数的条件是以20开头30结尾的文本字符串,在B32:B36这个区域中符合条件的确实有3个。剩下的2个如上图红色框所示。

正确的公式为=COUNTIF(B$32:B$36,SUBSTITUTE(B32,"*","~*")),先用substitute函数将*替换为~*,然后再用countif函数统计。*代表通配符,~*代表*本身。(你让*代表通配符,那谁来代表*本身呢,用~*)。
4.用条件格式标出不同部门的数据
下图左表是某公司员工的信息表,尽管各部门是排列在一起的,但为了看的更明显,需要用条件格式标出不同部门的数据,结果如右表所示。由于时间关系,今天不能详细说明了,想学习的可以下载文件查看。
链接:

https://pan.baidu.com/s/1h9jY3GhCNC7fhjTs8vtOOw

提取码:qkb6
(0)

相关推荐

  • 为什么不重复的身份证号码计数结果为重复?

    如图1,在B列使用下面的公式,判断A列的身份证号码是否重复. =IF(COUNTIF($A$2:$A$10,A2)>1,"重复","") 图1 公式中CO ...

  • COUNTIF函数用法大全

    COUNTIF函数用于统计满足某个条件的单元格的数量,其基本用法为: COUNTIF(统计区域,指定的条件) 如下图所示,要统计A列有几个5,可以使用以下公式: =COUNTIF(A2:A10,5) ...

  • COUNTIF函数的几个高能用法

    一.不一样的序号 如下图所示,要在A列按部门输入序号,不同部门的序号从1开始. 在A2单元格输入公式,向下复制: =COUNTIF(B$2:B2,B2) COUNTIF函数的统计区域是B$2:B2,第 ...

  • COUNTIF函数经典用法,全了

    小伙伴们好啊,今天老祝和大家分享一组COUNTIF函数的经典用法.COUNTIF函数主要用于统计满足某个条件的单元格的数量,其基本用法为: COUNTIF(统计区域,指定的条件) 如下图所示,要统计A ...

  • COUNTIF函数的五种用法,快收藏!

    行云里讲堂(ID:xingyunli2022) 践行终身学习,专注个人提升. 整理编辑:枏北 COUNTIF函数是一个统计函数.它对指定区域中符合指定条件的单元格计数. 其语法是:COUNTIF(要在 ...

  • 常见的5种净水器销售陷阱,坑了不少人,净水器还有必要买吗?

    我们都知道,自来水的安全非常重要,影响到千家万户的健康.因此对自来水的检测和处理,一直需要严格检测.然而,再好的计划也赶不上意外,总会有各种意外的情况出现.因此,我们会偶然看到报纸上报道某小区自来水出 ...

  • 使用COUNTIF函数,一定要小心了!

    前言 COUNTIF是我们经常遇到的带条件统计函数,使用频率非常高,但是它有一个小小的BUG,如果大家不清楚,就可能造成计算错误! 捉虫 01 第一种情况:文本型日期格式 第一列为文本型数据,在用CO ...

  • C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    文章来源:http://c.biancheng.net/view/2068.html 在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块).本节介 ...

  • 机会很多,坑也不少。

    本周小长腿,上半周哀声一片,周尾狂欢一片,周四下探周五反弹.指数涨幅并不大,但赚钱效益很可观,10厘米以上的个股多达88家!周五12家汽车股涨停,成为涨停行业第一名.如传媒娱乐.广告包装.软件服务等很 ...

  • Vlookup函数用法:核对两个文档表格数据

    两个文档数据顺序不同,表格数量庞大的情况下,如何快速核对数据呢?你还在用肉眼一个个查看吗?教你简单又不会出错的方法,使用vlookup函数核对表格数据. 1.待核对表格数据 这两个表格是待核对的,一个 ...