上一篇文章:信息不完整Vlookup函数怎么查询,excel通配符来搞定讲了当第一个参数查找值信息不完整时,vlookup可以借助通配符这种模糊查找的方式来实现查找。原因是通配符可以代表其它任意字符假装将未知的信息补充完整。
既然通配符可以这样妙用,那么有朋友就问了:万一我的查找值自身就包含了通配符,那它就会因此被视为模糊查找,找到的结果可能就不对了。怎么避免这种情况呢?
思考下,你已经知道通配符可以代表其它任意字符,你也知道只要你的字段中含有通配符,查找时它一定会发挥这一功效。可是你现在想要精确查找,所以你需要它只代表它自己。
怎么实现呢?把所有的通配符替换为“~通配符”,就可以让通配符变成普通的字符,它就可以做自己了。
来举个例子看看:根据F2的门店编码“BA*00060”在A:B查找门店名称。
你可能会说,要查找还不简单,于是不管三七二十一,套用vlookup函数:
噢,是南昌麦德龙店。可是你再稍微仔细观察一下查找区域,会发现F2的编码明明对应的是上海世博店,可是怎么查找不对呢?
再去看一眼南昌麦德龙店对应的门店编码:后面部分与F2是一致的。所以可以推断:查找时,F2应该是首先识别到了A4,然后就不往下继续找,于是就返回了A4对应的门店名称。(vlookup查找的逻辑是只查找首个结果)
可是为什么查找时,F2遇到A4就停住了呢?这当中就是F2中的通配符星号(*)在作祟。因为通配符星号(*)可以代表多个字符,所以F2中的星号就意味着其后的“00060”前面可以有任意信息。而A4相比F2,正好只是在它前面多了个“BA”,二者可以匹配。
好,现在知道症结在哪里,就好办了。我们试试将“*”替换为“~*”。怎么替换呢?
这里要来介绍一个替换函数:substitute。
首先,它的用途:顾名思义,替换函数,它可以将字段中指定的内容替换为新的内容。
其次,它的语法:这是一个文本函数,有4个参数,前3个是必需的,第4个可缺省。
第1个参数,是你需要替换的完整字符串;第2个参数,是完整字符串中现有需要被替换的老字符串;第3个参数,是用来替换老字符串的新字符串;第4个参数,是表示要替换第几次出现在完整字符串中的老字符串。如果省略,则表示所有老字符串都要被替换。
好,现在一切准备就绪了,我们接着回到这个例子:只需要对第一个参数用substitute将通配符“*”替换成“~*”即可。
关于这个公式,需要注意的是:”*”、”~*”是文本,所以都需要加上双引号。
好,到这里,今天的主题就讲完了。结合昨天的文章,你应该对通配符有比较清晰的理解。其实,通配符往往在查找中用得比较多,所以除了vlookup查找会用到,直接通过查找(Ctrl+F)或替换(Ctrl+H)也会用到。