昨天有同学问了一个模糊查找的问题,用vlookup无法实现,只能把lookup函数搬了出来。
【例1】如下图所示表1为省市的提成表,表2的A列是详细地址,要求根据省市关键字从表1中查找相对应的提成。
公式:B10=LOOKUP(9^9,FIND(A$3:A$6,A10),B$3:B$6)
公式说明:
FIND():用FIND查找当前地址中是否包括表1的省市。查找成功返回数字;查找不到返回错误值#VALUE!
9^9:一个足够大的数字。
lookup() : 忽略错误值,查找比9^9小且最接近的数字的位置,并返回B列对应的提成。
兰色这里又想起和这个问题相似但又相反的提问,但公式用的方法是一样的。
【例2】如下图所示表1是公司的全称。要求在表2中根据公司的简称查找相对应的B列的应付账款。
=LOOKUP(9^9,FIND(A10,A$3:A$6),B$3:B$6)
公式说明:和例1相同,略。
Lookup函数在查找数据方面几乎无所不能,再看3个应用
【例3】查找最后一条符合条件的记录。
【例4】、多条件查找
【例5】指定区域最后一个非空值查找
连提取数字也离不开lookup函数
【例6】数字在开头
A1的值为 123.45ABC
公式:
=LOOKUP(9^9,LEFT(B1,ROW(1:9))*1)
截取结果:123.45
【例7】数字在结尾
A1的值为 ABC123.45
公式: =LOOKUP(9^9,RIGHT(B1,ROW(1:9))*1)
截取结果:123.45
【例8】数字在任意位置。
A1的值为 ABC123.45FE
数组公式:{=LOOKUP(9^9,MID(A1,MATCH(1,MID(A1,ROW(1:9),1)^0,0),ROW(1:9))*1)}
截取结果:123.45
兰色说:lookup函数的应用远不止这些,在excel函数中它能实现的查找远远超过vlookup函数。
Lookup函数的查找原理是二分法,想弄明白它可不是一件容易的事。不过小妖老师在 excel函数中高级视频教程的第14集已有详细讲解。点击'阅读原文'查看兰色+小妖录制的Excel全套视频教程详情。
联系客服