如题所述
lookup函数4种经典用法如下。
一、常规引用
格式:LOOKUP(查找值,查找区域)
例1:根据姓名查找语文成绩,公式为=LOOKUP(H2,C2:D19)例2:根据姓名查找英语成绩,公式为:=LOOKUP(H2,C2:F19)
通过这两个例子我们可以发现,LOOKUP在进行查找时公式的结构非常简单,查找值和要找的结果分别位于查找区域的首列和末列。
当查找姓名变成赵永福的时候,结果就不对了,这是因为LOOKUP函数使用的是二分法查找,也就是模糊匹配。因此,在使用LOOKUP进行常规查找的时候,有一个非常重要的步骤,就是按照查找内容(姓名所在的c列)升序排序。当我们排序以后,公式的结果立刻变成了正确的。
二、精确查找的套路
格式:=LOOKUP(1,0/(查找范围=查找值),结果范围)
在I2单元格输入公式:=LOOKUP(1,0/(C2:C19=H2),D2:D19),回车,可看到正确结果。
1就是要查找的值,但是条件变了,不是直接查找姓名,而是根据姓名得到的一组逻辑值:注意这里只有一个TRUE,也就是我们要找的姓名。接下来用0除以这些逻辑值,在进行计算的时候逻辑值TRUE代表1,FALSE代表0,当分母为0也就是FALSE的时候,计算结果是错误值:
因此,LOOKUP的工作就变成了在一组数据中找1。由于这组数据只有一个0,其他都是错误值,二分法使得LOOKUP只能找到不大于查找值的最后一个数字,因此只能找到0,最后根据0的行位置(第2行)得到第三参数对应位置的数据,即D2就是我们需要的结果。
三、反向查找的套路
与我们熟知的VLOOKUP不同,使用LOOKUP函数进行反向查找时非常简单,公式结构为:=LOOKUP(查找值,查找列,结果列),下面这个例子是按照姓名排序后再反向查找的效果:如果数据不能排序的话,使用精确查找的套路:=LOOKUP(1,0/(C2:C19=H8),B2:B19)。
四、按区间查找的套路
根据学生的总分给出相应的评语。50分以下的为“很差”,50-100分的为“差”,100-150分的为“一般”,150-200分的为“较好”,200-250分的为“优秀”,250分及以上的为“能手”。