新浪博客

当Match函数遇上通配符

2015-04-12 10:36阅读:
在工作中我们经常都能看到通配符的影子,查找,替换,筛选,高级筛选,合并计算,甚至在函数中也时常能见到通配符。那么今天我们来聊一聊当Match函数遇上通配符。
首先我们来看一个Q群朋友的问题:

我们使用这个熟悉的函数,怎么可能得到错误值呢?根据经验得到错误值的原因可能是品名不一致(有不可见字符或者空格)

然而用=EXACT(A2,A6)来检测两单元格返回True,说明两个单元格的值是一致的,那问题出在哪呢?
说了这么多,聪明的朋友看到我的标题就知道发生什么事情了。在Excel中通配符有3个,分别为?(问号)、*(星号)、~(波形符),他们本身不做字符来使用
?(问号)
可代表任意单个字符;
*(星号)
可代表任意数量的字符;
~(波形符)
后可跟?、*或~,代表问号、星号或波形符本身。

在函数中我们用F9返回结果:=MATCH('保险丝(RGS4 690V~125A)',{'品名';'保险丝(RGS4 690V~125A)'},)由于查询的字符串中包含'~','~'本身不做字符串来使用,所以实际上是:=MATCH('保险丝(RGS4 690V125A)',{'品名';'保险丝(RGS4 690V~125A)'},),查询当然会返回错误值。
解决方法:=MATCH(SUBSTITUTE(A6,'~','~~'),$A$1:$A$2,)

当然像这样的支持通配符的函数还有很多:Vlookup,Search,sumif,countif,Hlookup……这里就不一一尝试。总之、在源数据中包含通配符的时候小心谨慎,防止出错。

我的更多文章

下载客户端阅读体验更佳

APP专享