vlookup公式,如果查找值和查找区域内的值类型不匹配,经常会查找不到。比如查找值为文本型数字,而查找区域内的值为数值型数字。

 

一、公式用法:

VLOOKUP(查找值,查找区域,返回查找区域第N列,查找模式)

1、如果查找值是数值型数字,而查找区域内的值也是数值型数字,直接用即可。

2、查找值为数值型数字,查找区域内的值为文本型数字,此时应该把查找值转换为文本型。

比如查找值在A1,用 A1&"" 将A1转换为文本型数字。

3、查找值为文本型数字,而查找区域内的值为数值型数字,此时把查找值转换为数值型。用--或*1或+0等,都可以。

4、无论查找值为文本或数值,也不管查找区域内的值是文本或数值,一个公式全部完成:比如查找值为A1,区域为B2:E20,返回第3列。

IFERROR(VLOOKUP(--A1,$B$2:$E$20,3,0),IFERROR(VLOOKUP(A1&"",$B$2:$E$20,3,0),""))

二、公式说明:两层iferror嵌套。

①外层,绿色部分,先用--A1将A1转换为数值型,如果查找成功,返回第1个参数中的vlookup查找结果(即绿色部分的查找结果)。

②如果出现错误,执行内层的iferror。

③在第2层iferror中:

 I、橙色部分,通过A1&""将A1转换为文本型,如果查找成功,返回橙色部分的查找结果。

 II、如果查找错误,返回空值""。

IFERROR(VLOOKUP(--A1,$B$2:$E$20,3,0),IFERROR(VLOOKUP(A1&"",$B$2:$E$20,3,0),""))


三、执行情况分析:

①如果查找值为数值型,查找区域值也为数值型,因为绿色部分已经将A1转换为数值型,所以会返回绿色部分查找的结果。

②如果查找值为数值型,查找区域值为文本型,会执行内层的iferror,橙色部分将A1转换为文本型,从而返回橙色部分的查找结果。

③如果查找值为文本型,查找区域值为数值型,因为绿色部分已经将A1转换为数值型,所以会返回绿色部分查找的结果。

④如果查找值为文本型,查找区域值为文本型,会执行内层的iferror,橙色部分将A1转换为文本型,从而返回橙色部分的查找结果。

注: 在excel中,通过公式中的“公式求值”,可以很清楚地看到公式的执行过程。