为什么用VLOOKUP函数查找包含星号的文本得不到正确结果

时间:2013-09-26   作者:snow   来源:互联网

使用VLOOKUP函数在Excel中进行查找时,如果第四个参数为FALSE且查找的内容为文本时,就可以使用通配符——即问号 (?) 和星号 (*),想必这一点大家都知道吧。但唯一缺点是如果在所查找的文本中本身就包含星号,如果直接使用VLOOKUP函数那么所得到的结果就不一定正确。比如在查找图中编号“G62*178*C01”所对应的第一个数量时,如果直接使用公式,就不会得到正确的结果。那么这种问题该怎么解决呢?其实很简单,在公式中先用SUBSTITUTE函数把星号替换成波形符+星号 (~*),然后再用VLOOKUP函数查找,如此以来就不会出现错误的结果了。下面有个不错的示例,大家可以尝试着操作下,或许会有所帮助。

如果直接使用公式:=VLOOKUP(E3,B2:C12,2,)

将返回“G62*178*3C01”所对应的数量“115”。

VLOOKUP查找带星号的文本

这是由于VLOOKUP函数在查找“G62*178*C01”时,会把“*”号作为通配符,从而认为“G62*178*2C01”、“G62*178*3C01”都属于“G62*178*C01”。

这时要得到正确的结果,可以用下面的公式,假如要查找的文本在E3单元格,在F3中输入:

=VLOOKUP(SUBSTITUTE(E3,"*","~*"),B3:C12,2,)

说明:在查找星号或问号字符本身时,需在星号或问号前添加一个波形符(~)。公式中先用SUBSTITUTE函数把星号替换成波形符+星号 (~*),然后再用VLOOKUP函数查找。

或使用下面的数组公式:

=INDEX(C2:C12,MATCH(TRUE,B2:B12=E3,))

公式输入完毕,按Ctrl+Shift+Enter结束。

发表评论