[Excel]当lookup遇上通配符

为什么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)