"为什么vlookup函数会给我错误的结果?难道这是Excel的bug?"
令人疑惑的vlookup结果
单元格D3,D4中分别是要查询的字段,但E3、E4中的查询结果,却不是正确的结果。这是为什么呢?
其实,这是因为你遇上了通配符。
通配符
字段中的问号"?"和星号"*"都是Excel中的通配符。他们可以被用在诸如Find/Replace, Search, Match以及Lookup这样的函数中,具体说来:
?-代表单个字符
*-代表任意长度的字符
回到上述的例子中,在进行第一个vlookup时,“裤子?8”意味着这样的一个字符串:
以“裤子”开始
以“8”结尾
两者间还有一个字符
所以造成在使用vlookup时,Excel首先匹配到了A5单元格的“裤子28”。
而在进行第二个vlookup时,“裤子*9”则首先让程序匹配到了A4单元格的“裤子蓝色29”。
该怎么办?
因此,如何才能在使用vlookup查询包含“?”或“*”这样的字符串呢?
你需要在“?”/“*”前添加一个“~”
如图所示,在通配符前添加“~”后,就能查询到正确的结果了。
不过,如果你不记得在查询前给单元格中的通配符加上~,那你可以使用SUBSTITUTE函数。
=VLOOKUP(SUBSTITUTE(lookup_value,"*","~*"),$A$3:$B$7,2,0)