举个工作中的例子,左边是商品的价格表,现在我们要查找匹配部分产品的价格
通常我们会使用vlookup公式来查找匹配,我们输入的公式是:
=VLOOKUP(E2,B:C,2,0)
但是我们发现,这个结果是错的,结果明明是8699,查找结果却是11899,这是为什么呢,问了办公室同事都觉得奇怪, 是不是出bug了?
1、出错原因分析很明显不是bug,是我们忽略了一个点,那就是通配符问题,在excel中,有3个通配符,分别是
通配符 | 意义 |
* | 任意多个字符 |
? | 任意单个字符 |
~ | 转义符 |
所以当我们的查找值是iPhone*Xs时,表示以iPhone关键词开头,以Xs结尾的数据都是符合要求的,所以会匹配到上面的一条数据,得到的结果是11899
2、如何正确匹配通配符那遇到通配符的时候,如果正常的匹配到我们想要的结果呢?
通配符 | 意义 | 字符本身 |
* | 任意多个字符 | ~* |
? | 任意单个字符 | ~? |
~ | 转义符 | ~~ |
那我们就需要使用~*去代替*号进行查找匹配,我们可以使用substitute公式
=SUBSTITUTE(E2,"*","~*")
可以将*号,替换成~*文本
然后我们再使用vlookup就可以得到我们想要的结果了:
=VLOOKUP(SUBSTITUTE(E2,"*","~*"),B:C,2,0)
下次遇到通配符查找匹配的时候,你就不会犯错了,动手试试吧~!