来自:Excel不加班(ID:Excelbujiaban)
作者:卢子
关于查找这个问题几乎每天都会有读者问到,新手喜欢用VLOOKUP函数,而高手钟爱于LOOKUP函数。
今天就来根据读者的实际问题,看LOOKUP函数如何搞定各种查找问题?
1.根据名称查找对应的编码。
正常查找对应值用VLOOKUP函数,这里是逆向查找,会使查找难度变得非常大,而用LOOKUP函数反而更简单。
LOOKUP函数的经典查找模式:
=LOOKUP(1,0/(查找区域=查找值),返回区域)
这里的1跟0是固定的,记住这一点就可以。
有一部分读者就这样写公式,结果也能出来。
=LOOKUP(1,0/(E2:E12=A2),D2:D12)
其实这种写法是错误的,运气好,答案对了而已。现在新增加名称,就得到错误值。
查找的时候,区域要加绝对引用,否则下拉的时候区域就会改变,从而导致出错。
正确的方法应该是动画这种。
2.根据编码查找对应的名称。
这里加了绝对引用怎么也出错了?
这个是很常见的现象,很多人在录入数据的时候,两边设置的格式不同,这就导致了查找出错。
正确的方法应该转换成统一的格式。
=LOOKUP(1,0/($D$2:$D$12=--A2),$E$2:$E$12)
=LOOKUP(1,0/($D$2:$D$12&""=A2),$E$2:$E$12)
文本转数值,在前面加--,数字转文本,在后面&""。
3.根据查找内容的后5位数字,在查找区域查找后5位相同的内容。
从右边提取字符用RIGHT函数,5就代表提取5位。
=RIGHT(A2,5)
两边都用RIGHT函数提取,然后合并起来即可。
=LOOKUP(1,0/(RIGHT(A2,5)=RIGHT($D$2:$D$64,5)),$D$2:$D$64)
不过这样查找不到对应值会显示错误值,不美观。
这时IFERROR函数就派上用场了,让错误值显示空白。
=IFERROR(LOOKUP(1,0/(RIGHT(A2,5)=RIGHT($D$2:$D$64,5)),$D$2:$D$64),"")
最后,有一小部分人的习惯不好,经常使用合并单元格或者多输入一些空格之类的,这种最好改掉,否则会给你带来不便!