在日常工作中,excel的查找函数可以称得上是函数的精髓之一,因为查找函数单独使用就可以实现很多日常操作需要,更别说很多复杂的函数往往也会嵌套查找函数使用,常用的查找函数有vlookup、index—match、lookup函数等,这些函数非常相似,有些查找选择这些函数任意一个都可以完成,今天小编给大家介绍一下lookup函数的几种用法,这个函数非常灵活,可以在很多种情况下运用。
一:基本正向查找与反向查找
其实查找本来没有必要分成正向查找或者反向查找,因为vlookup函数用的人实在太多了,vlookup函数进行正向查找比较简单,反向查找稍显复杂,所以正向查找和反向查找会做出区分。
但是在lookup函数中,正向查找和反向查找的公式完全一样,即公式=lookup(1,0/(条件区域=条件),返回结果区域)。这个格式是lookup函数常用的固定套路,可能比较难以理解,下面就以案例介绍这个函数的含义
以下图中根据姓名查找成绩为例,E2单元格输入的函数=LOOKUP(1,0/($A$2:$A$10=D2),$B$2:$B$10),
在这个函数中,第二个参数的分母部分是($A$2:$A$10=D2),表示判断D2单元格是否等于A2到A10单元格,如果等于返回的结果是true,否则返回的结果是false,此处返回的结果是{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE},即第四个判断为true。
在0/($A$2:$A$10=D2)中,其实true可以看做是1,false可以看做是0,计算结果只有第四个返回的值为0,其他为错误值,因为0作为分母无意义,此处返回的结果是{#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
在lookup函数查找中,查找的结果会忽略错误值,而第二个参数只有第四个为0,不是错误值,所以第一个参数1在第二个参数中查找,返回的查找结果是第四个数,即“赵云”,第三个参数$B$2:$B$10为返回的结果,即最终计算结果返回“赵云”对应的成绩。
查找完成后,向下拖动即可填充公式,同理,只要成绩不唯一(此处只为举例),根据成绩反向查找姓名公式含义不变。
二:多条件查找
通过上述基本查找的介绍,相信大家对lookup函数的公式含义有一定的了解,其实在多条件查找中,仍然使用的是与基本查找相同的套路,即函数公式=lookup(1,0/((条件区域1=条件1)*(条件区域2=条件2)),返回结果区域)。
下图中根据区域和产品型号查找销量,那么在H2单元格输入的函数公式为=LOOKUP(1,0/(($A$2:$A$21=F2)*($B$2:$B$21=G2)),$C$2:$C$21),这个函数中第二个参数的分母部分发生变化,用乘号连接表示需要同时满足这两个条件,乘号前面和后面的条件判断结果false可以看作为0,true可以看作为1,所以两者相乘返回的结果就是1或者0。最后分母部分返回的结果是{0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0},其他参数的含义就和上面介绍的一样了。
三:模糊查找
在下图中,EF两列为评价标准和评价类型,我们要根据EF列的标准,在C列中显示B列销量数据的评价类型,该如何设置公式呢?
这种查找的基本函数=lookup(查找依据,查找区域,返回结果区域)。所以我们在C2单元格输入的公式为=LOOKUP(B2,$E$2:$E$7,$F$2:$F$7),其实这个函数可以说是lookup函数的基本用法,lookup函数在查找中,如果查找不到准确的值,那么就会返回到小于查找值的最大值对应的结果,前提是对查找范围进行升序排序,即下图中E列数据按从小到大顺序排列。
在C2单元格中,根据B2单元格的内容在E2到E7单元格中进行查找,因为520在查找区域中没有准确的查找依据,所以返回查找的依据是500,最后返回第三个参数对应的结果,即“一类”。然后向下拖动即可填充公式。
四:查找最后一次出现的记录
在下图中,如何查找“一班”、“二班”、“三班”对应的最后一个名字及成绩呢?
这里又用到了lookup函数的基本查找了,即F2单元格的公式=LOOKUP(1,0/($A$2:$A$10=E2),$B$2:$B$10)。第二个参数的分母($A$2:$A$10=E2)中的判断结果有两个会返回true,所以0/($A$2:$A$10=E2)返回的结果为{#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!},而lookup函数查找不到满足条件的值时,会忽略错误并返回最后一个值。所以此处会查找到班级对应的最后一个姓名和成绩。
五:根据简称在全称中查找
在下图中,D列是查找依据,AB两列是查找数据源,但是此处查找依据是简称,其他查找函数就不好实现了,利用lookup函数仍然非常容易。
这种查找的基本公式仍然为=lookup(查找依据,查找区域,返回结果区域)。所以在E2单元格中输入公式=LOOKUP(9^9,FIND(D2,$A$2:$A$5),$B$2:$B$5)即可。第二个参数FIND(D2,$A$2:$A$5)表示D2单元格在A2到A5单元格进行查找,返回的结果为{#VALUE!;#VALUE!;5;#VALUE!},因为只有在第三个单元格可以查到“会计”并且返回的结果为5,即“会计”在“中级财务会计”中第5个字符开始。而其他结果都为错误值,所以9^9查到不到准确结果,忽略错误值后,只会返回5对应的成绩。
这里第一个参数9^9只是为了保证准确,此例中A列的单元格最多为8个字符,find函数返回的最大结果也不可能超过8,所以此处第一个参数输入一个9也能返回正确的结果。
六:根据全称在简称中查找
和上面情况相反,如果查找的数据源是简称,我们要根据全称查找对应的内容,该如何操作呢?
此时在E2单元格输入的公式为=LOOKUP(1,0/FIND($A$2:$A$5,D2),$B$2:$B$5),这个函数和上面的根据简称查找全称十分相似,主要差异是在第二个参数,第二个参数的分母函数为FIND($A$2:$A$5,D2),即查找数据源中的简称在查找依据中的位置,返回的结果是{#VALUE!;3;#VALUE!;#VALUE!},忽略错误值后,会返回第二个参数对应的值。
这就是本文介绍的lookup函数的一些典型用法,可以看到=lookup(1,0/(条件区域=条件),返回结果区域)是lookup函数的常用套路,lookup函数可以忽略错误值并且返回最后一个值或最大值,再加上模糊查找功能,赋予了lookup函数更加灵活的用法。