Excel中Countif函数统计带星号*的产品型号会出错,你知道么? 图文

2019年7月13日15:49:53 评论 455 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

说起条件统计,相信大家第一个想起来的就是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打开“查找和替换”窗口,输入“一*人”,然后查找全部。这时候,全部的单元格都能被查找到。

不管中间是一个字还是两个字或者更多,使用星号是都可以查找到的。

问号(?)

问号是需要查找任意单个字符的时候使用。使用的时候,要注意输入英文状态下的问号。

仍以上述表格举例,在“查找和替换”窗口输入“一?人”,然后查找全部。这时,仅单元格“一个人”被查找到。因为问号仅对应单个字符,所以中间有多个字的单元格是不会被查找到的。

位置情况

使用问号会发生一个例外情况,就是当替代的字符不在中间,而是在开头或者在末尾。在查找的时候输入“一?”,然后查找全部,这时得到的结果,只要是“一”开头的单元格,均会被查找到。

因此在使用问号的时候需要注意,对星号则没有影响。

波形符(~)

当单元格内容包含了星号或者问号,查找的时候输入这两个符号,会误认为通配符。

如图,现需要查找内容“一个人*”,星号是包括在这个单元格里的。但实际查找的时候,星号被认为是通配符,“一个人”开头的单元格,均会被查找到。

这时,需要在星号前加上波形符“~”,查找到的内容就会完全匹配了。

以上就是关于通配符的一些相关知识,在实际运用中都要根据需求进行调整。

鸣谢:如果觉得文章对你有帮助,记得关注点赞转发和评论哦!

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

发表评论

您必须才能发表评论!