EXCEL880–COUNTIF的判断条件 进阶讲解 通配符 模糊匹配

2015年10月11日00:15:28 评论 3,828 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

COUNTIF 俗称条件计数,来计算符合条件的单元格个数,接受参数为(单元格区域,条件) 基本用法可参考帮助

这里主要讲几点容易忽略的几个小细节 在使用时可能会与预期的结果不符

另外 注意数据标准化的话 不会出现这些问题 但是现实中总是有很多非标准数据 请小心使用

1.通配符 "*","?"

*表示0-N个文本字符,?表示一个文本字符

在COUNTIF中如果使用了通配符,那么只会查找所有的文本,其他类型的数据将会被忽略

1.1 COUNTIF(A4:A15,"*")=6符合条件单元格为A5,A6,A7,A10,A12,A13

当使用"*"作为条件时 返回的内容为所有文本单元格的个数,其中包含空文本 如单元格的值为=""

1.2 COUNTIF(A4:A15,"?*")=4符合条件单元格为A7,A10,A12,A13

"*"代表了所有的文本包含(""),如果想求出不含空文本的所有文本单元格个数时,使用"?*",是一个不错的选择

根据通配符来解决 就是长度>=1的文本,因为?代表一个字符,因此len("")=0 将不会被统计

2.比较运算

在比较运算中,如果是">1"那么只会比较数值

2.1 等于运算和其他比较运算的一些不同

上面提到如>1 那么只计算数值,如单元格的时候为="88",文本型数值将不会被计算,但=是有些许不同的

COUNTIF(A4:A15,"=88") =2符合条件单元格为A9,A10

那么不管单元格的值是=88或者是="88" 都会被计算 文本型数值将会转化为数值

2.2 不等于运算

COUNTIF(A4:A15,"<>88")=11符合条件单元格为A4,A5,A6,A7,A8,A10,A11,A12,A13,A14,A15

这时判断的是所有不等于数值88的数据,或者真空单元格,文本,文本数值,逻辑值都会被统计

<>比较数值时要慎用 确保没有文本型数值,实在没办法去除用 COUNTA(B3:B12)-COUNTIF(A4:A15,"=88")

 2.3 真空问题

所谓真空 就是单元格什么都没有,没有空格也没有',更没有"" 也就是Countblank计算的单元格了

当然用COUNTIF也是可以求出来的 公式如下

COUNTIF(A4:A15,"=")=11符合条件单元格为A4

于是不为真空的条件就是COUNTIF(A4:A15,"<>")

COUNTIF(A4:A15,"<>")=11符合条件单元格为A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15

3.文本与逻辑值

3.1 COUNTIF(A4:A15,"")=3符合条件单元格为A4,A5,A6

这个会统计真空与空文本的值,这里要注意如果条件""是引用的单元格 那么单元格要写=""

3.2 COUNTIF(A4:A15,TRUE)=1符合条件单元格为A11

这个可以统计逻辑值TRUE,如果单元格的值为="TRUE"是不会被统计的

而如果是COUNTIF(A4:A15,"TRUE")一样是只统计逻辑值的,="True"将不被计数

或者COUNTIF(A4:A15,"=true"),一样也是只计算逻辑值的True的个数

在这一点上我一直很纠结,一直无法用一条COUNTIF精准的去统计文本型的true,false

COUNTIF(A4:A15,"true*")=1符合条件单元格为A12

一般我都采取COUNTIF(A4:A15,"true*")来解决,不过如果缺点是显而意见的.

如果有人解决了这个问题,请一定告诉我

3.3 COUNTIF文本比较

就像在单元格中输入="A"="a"的结果是True一样,COUNTIF是不区分大小写,想区分大小写只能换一个函数使用了

COUNTIF(A4:A15,"A*")=2符合条件单元格为A7,A13

4.错误值

在很多的函数中如Sum,Mid,Int,Abs中,如果单元格中存在错误值,那么返回的结果就是错误值了,但CountIf并不会如此呢

相反他还可以分类每一种错误值的个数

COUNTIF(A4:A15,1/0)1符合条件单元格为A14

那么他只会统计A列中除0错误的值,也可以写成如下

COUNTIF(A4:A15,"#value!")

就会计算#VALUE!这个错误值的个数了,注意单元格的值如为="#VALUE!",将不会被计算,这一点和上面的逻辑值相似

**ps:以上的判断条件在sumif中是通用的,是完全一样的.

  • 郑广学老师微信号
  • EXCEL880B
  • weinxin
  • 我的微信公众号
  • EXCEL880
  • weinxin
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

发表评论

您必须才能发表评论!