Vlookup中对文本型数字的查找
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中,通过公式中的“公式求值”,可以很清楚地看到公式的执行过程。