比如说从指定位置查找、多条件查找、逆向查找等等。
这些VLOOKUP函数实现起来颇有难度的功能,有一个函数却可以轻易实现。她,就是今天的主角——LOOKUP。
接下来咱们就一起看看LOOKUP函数几种典型应用:
一、查找最后一条符合条件的记录
公式的模式化写法为:
=LOOKUP(1,0/(条件区域=条件),查询区域)
首先使用条件区域=条件得到一组逻辑值,然后使用0除以这些逻辑值,如果符合条件,就是0/TRUE,结果是0。
如果不符合条件,就是0/FALSE,结果是错误值,这一步最终得到由一组错误值和0构成的内存数组。
然后使用1作为查询值,在这个内存数组中查找小于等于1的最大值,内存数组中没有1,所以就以0进行匹配,并且返回第三参数对应位置的内容。
二、查询符合多个条件的记录
公式的模式化写法为:
=LOOKUP(1,0/((条件区域1=条件1)*(条件区域2=条件2)),查询区域)
这里的查询套路和第一个问题一致。使用两个条件判断,然后将判断之后得到的两组逻辑值中的元素对应相乘。
如果两个条件同时符合,就是TRUE*TRUE,结果为1。
如果有一个条件不符合或是都不符合,就是TRUE*FALSE或是FALSE*FALSE,结果是0。
最后使用1作为查询值,在这个内存数组中查找匹配0的位置,并且返回第三参数对应位置的内容。
三、逆向查询
按照以上相同的思路,最后的查询区域可以灵活写成任意一列,从右至左、自下而上查询,统统没问题。
四、查询最后一笔业务日期
公式的模式化写法为:
=LOOKUP(1,0/(条件区域<>''),查询区域)
=LOOKUP(1,0/B4:B11,$A4:$A11)
但是只适合条件区域为数值的情况,而失去通用性了。
五、模糊查询考核等级
这种方法可以取代IF函数完成多个区间的判断查询,前提是对照表的首列,必须是升序处理。
如果在E列中找不到B4单元格的具体成绩79,就以小于这个成绩的最大值60进行匹配,并返回F列对应位置的内容。
六、提取单元格内的数字
A2公式为
=-LOOKUP(1,-LEFT(A2,ROW($1:$99)))
首先用LEFT函数从A2单元格左起第一个字符开始,依次返回长度为ROW($1:$99)也就是1至99的字符串,添加负号后,数值转换为负数,含有文本字符的字符串则变成错误值。
LOOKUP函数使用1作为查询值,在由负数、0和错误值构成的数组中,忽略错误值提取最后一个等于或小于1的数值。
最后再使用负号,将提取出的负数转为正数。
好了,今天的内容就是这些吧,祝各位小伙伴一天好心情!
ExcelHome学院近期开课预告
联系客服