说起条件统计,相信大家第一个想起来的就是countif,但是现实中,这个条件统计常常会统计错误,特别是在产品ID或者型号里带有星号(*)的时候比如下图所示
难道是Excel坏了? 我这暴脾气,去找微软算账
结果人家告诉我说,不是微软错了,是你自己不会用,听我娓娓道来!
这个问题是由于统计的数据中有*,那么就会造成countif把*作为通配符, 实际效果就是*代表了任意字符而不是数据中本身的*
解决方案有2个
1、countif要统计通配符本身,前面需要加~所以公式改为countif(A:A,SUBSTITUTE(A76,"*","~*")) 将通配符*替换为~*再作为条件统计函数的条件使用
这种方法遇到多个不同的通配符就比较麻烦,因为通配符还有?那么看第二种情况
2、确定了是精确统计,那么直接用SUMPRODUCT
公式 =SUMPRODUCT(–($A$1:$A$100=A76))
注意这里不要写整列A:A,会降低计算速度或者直接导致Excel崩溃
这个就可以应对任何符号了
那现在再来看一下
什么是通配符?有什么用途
常用的通配符只有3种:
问号 ? – 表示占位一个字符
星号 * – 表示占位多个字符
波浪符 ~ – 表示波浪符右侧的符号为普通字符
因此通配符可以表达许多不同的含义,比如:
通配符的用处
通配符可以适用于许多常用的函数公式中,包含但不仅限于以下函数:
AVERAGEIF, AVERAGEIFS
COUNTIF, COUNTIFS
SUMIF, SUMIFS
VLOOKUP, HLOOKUP
MATCH
SEARCH
除此之外,通配符还在查找替换功能中起到了非常重要的作用。
不体现通配符功能的通配符
有的时候,通配符本身在字符串中有着自己的含义,比如问号代表疑问。而这是,我们又需要处理和这几个通配符相关的运算时,我们就需要用到:
波浪符 ~ – 表达为 ~~、~*、~?
比如,需要查找所有以**结尾的字符串,你可以在查找内容中输入:
*~*~*
其中第一个星号代表多个字符,而连续两个波浪符加星号的组合,则体现了连续两个星号以字符的形式出现在字符串的最末尾通配符
通配符替换实例
如图,单元格里面有一些内容。
使用快捷键Ctrl+F打开“查找和替换”窗口,输入“一*人”,然后查找全部。这时候,全部的单元格都能被查找到。
不管中间是一个字还是两个字或者更多,使用星号是都可以查找到的。
问号(?)
问号是需要查找任意单个字符的时候使用。使用的时候,要注意输入英文状态下的问号。
仍以上述表格举例,在“查找和替换”窗口输入“一?人”,然后查找全部。这时,仅单元格“一个人”被查找到。因为问号仅对应单个字符,所以中间有多个字的单元格是不会被查找到的。
位置情况
使用问号会发生一个例外情况,就是当替代的字符不在中间,而是在开头或者在末尾。在查找的时候输入“一?”,然后查找全部,这时得到的结果,只要是“一”开头的单元格,均会被查找到。
因此在使用问号的时候需要注意,对星号则没有影响。
波形符(~)
当单元格内容包含了星号或者问号,查找的时候输入这两个符号,会误认为通配符。
如图,现需要查找内容“一个人*”,星号是包括在这个单元格里的。但实际查找的时候,星号被认为是通配符,“一个人”开头的单元格,均会被查找到。
这时,需要在星号前加上波形符“~”,查找到的内容就会完全匹配了。
以上就是关于通配符的一些相关知识,在实际运用中都要根据需求进行调整。
鸣谢:如果觉得文章对你有帮助,记得关注点赞转发和评论哦!