分享

用lookup玩转多条件查找

 L罗乐 2017-10-04

vlookup想必大家都非常熟悉,大家知道还有一个lookup吗?这可是个神奇的函数,可以完成很多vlookup无法胜任的工作

我这里只介绍lookup向量形式的用法,数组形式的大家有兴趣可以自行百度啊

 


我们用一个例子看下lookup 的3个参数


如果要用lookup在查询表里面查询价格,那3个参数应该这样设置

lookup(参数1:要查找的值,如百事可乐500ml,参数2:查找值在数据源里的位置,如数据源商品名称列,参数3:要返回的结果在数据源的位置,如数据源价格列)

这样就可以用下面这个公式查找到百事可乐500ml在数据源里对应的价格

 =LOOKUP(G2,$A$2:$A$5,$D$2:$D$5),返回3


注意,第二个参数必须升序排列,-2、-1、0、1、2、...、A-Z、FALSE、TRUE;否则,函数 LOOKUP 不能返回正确的结果。文本不区分大小写。



如果要查找的值(参数1)在查找区域(参数2)里没有,则在查找区域里面与小于参数1的最大值进行匹配查找,如果参数1比查找区域的最小值还小,则返回#NA



我们用两个lookup常用的方法更好的学习下这个函数

复合条件查找

这个例子里,我想查指定品牌,尺码,颜色的价格(注:同时符合这3个条件的值必须是唯一的)


在I2输入如下公式

=LOOKUP(1,0/(($A$2:$A$13=F2)*($B$2:$B$13=G2)*($C$2:$C$13=H2)),$D$2:$D$13)

如图


下面让我们把这个公式拆开分析一下,它的关键在于参数2,判断是否同时符合3个参数,让我们把参数2、参数3单独拿出来看下


参数2    0/(($A$2:$A$13=F2)*($B$2:$B$13=G2)*($C$2:$C$13=H2))    就是让3个查找区域每一行与查找值相等,只有某一行3个值都相等(同时符合3个条件),都返回true的时候,相乘后分母是1,参数2返回0;如果一行有任何一个值与查找值不相等,返回FALSE,相乘后分母是0,参数2都会返回错误值;

由于同时符合3个条件的值是唯一的,因此参数2区域里只有一个0,而我们的查询值是1,当参数2区域里面没有1的时候,匹配小于1的最大值,就是0,并且返回参数3里对应行的值,在这里就是符合品牌、尺寸、颜色3个条件的价格


查找最后一个符合条件的值

Vlookup只能进行一对一或者多对一的查询,但是有了lookup就可以查询多条符合条件的信息里面最后一条的信息

比如如下这个例子,我想查询某个产品最近一次出货的日期(日期是按照升序排列,最后一次出现的就是最近的日期),只要在G2输入公式

=LOOKUP(1,0/($B$2:$B$14=F2),$A$2:$A$14),下拉即可

 

下面来分解下这个公式,奥妙也在第二个参数

如之前的一个函数,用$B$2:$B$14=F2判断B列复合条件(A产品)的行,符合条件的返回true,参数2等于0,不符合条件的返回false,参数2=0/false返回错误值(false相当于0,0/0返回错误值)

有四个符合条件,参数2等于0;由于参数2是升序排列,当参数2里面没有等于参数1的值的时候匹配小于参数1的最大值,参与1等于1,参数2都是0,那就匹配最下面的0。参数3是日期列

,因此返回最下面的0所在行的日期,这里是1月12日

 


有没有发现这个公式和上一个有点类似,实际上,这可是lookup的一个万能公式

=lookup(1,0/((件区域1=条件1)* (条件区域2=条件2)* (条件区域n=条件n)),结果区域) 注意:所有的条件区域相乘完以后一定要一个括号把他们括起来,这样分母才是所有条件判断结果相乘之积

参数2会返回一列和结果区域大小一致的数据,符合条件的返回0,不符合条件的返回#DIV/0!。用1(参数1)与参数2区域匹配,如果是唯一值就匹配唯一的0,不是唯一值匹配最下面的0,最后返回结果区域对应行的数据

 

这个参数可以帮助我们完成一对多查找,比如某个表里面没有一个条件值是唯一的,但是可以找到同时满足多个条件的唯一值,就可以用例1来查找,或者我只查找符合条件的最后一行的信息,就可以用列2的方法

Lookup还有一个好处就是条件列不必在结果列前面,当条件列在结果列后面,用vlookup需要调整下数据源的时候,可以用=lookup(1,0/(条件区域=条件),结果区域),更加快捷

 

Lookup还有很多高大上的功能,如果有兴趣继续学习下吧

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多