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

2015年10月11日00:15:28 评论 4,227 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
微信公众号 【EXCEL880】 QQ群【273774246】

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中是通用的,是完全一样的.

微信公众号 【EXCEL880】 QQ群【273774246】
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

发表评论

您必须才能发表评论!