愁人,LOOKUP函数为什么你一不留神就出错?
每个函数在使用的过程中都会出错,有些是数据原因导致出错,有些是不懂使用导致出错,今天卢子主要讲后者。
1.帮助理解不透彻导致出错
帮助:为了使 LOOKUP 函数能够正常运行,必须按升序排列查询的数据。如果无法使用升序排列数据,请考虑使用 VLOOKUP、HLOOKUP 或 MATCH 函数。
日期按照升序排序,按节日查找日期却出错了,怎么回事?
=LOOKUP(E2,B:B,A:A)
帮助提到的升序,不是指首列,而是指查找区域升序。现在根据节日查找,就要按照节日升序才行。
2.函数语法理解不透彻导致出错
LOOKUP有非常多的函数语法,稍微不留神就出错。还是刚刚的案例,我在查找区域升序的情况下,添加了2个新内容查找,本来应该都没有对应值才对,结果卢子却有对应日期。
函数语法说明,这种主要针对区间查找,不可乱用!
=LOOKUP(查找值,查找区域,返回值)
普通内容查找,适合用经典查找模式。
=LOOKUP(1,0/(查找值=查找区域),返回值)
经典模式一套进去就对了。
=LOOKUP(1,0/(E2=B:B),A:A)
如果要让#N/A显示空白,可以嵌套IFERROR函数。
=IFERROR(LOOKUP(1,0/(E2=B:B),A:A),"")
3.区域乱用导致出错
在写公式的时候,有的时候我是引用整列,有的时候我是引用有内容的区域。不要看我写得很随意,但实际上这两种不能乱用,一不留神就出错的。
还是刚刚的案例,不过我将B列的节字去掉,这样就变成按关键词查找,用LOOKUP+FIND组合,结果全出错。
在使用FIND函数的时候,别引用整列,只引用有内容的区域,同时区域要锁定,要不然下拉的时候区域就出错,切记!
=IFERROR(LOOKUP(1,0/FIND($B$2:$B$5,E2),$A$2:$A$5),"")
4.偷工减料导致出错
这个主要是针对多条件查找,公式是不会因为数据量变多导致出错,会出错就肯定是公式某个地方写错。
多条件查找,这里超级容易出错,很多学员都是这样直接写公式,这是错误的。
=LOOKUP(1,0/($A$2:$A$10=E2)*($B$2:$B$10=F2),$C$2:$C$10)
正确的方法,应该再加一对括号。
=LOOKUP(1,0/(($A$2:$A$10=E2)*($B$2:$B$10=F2)),$C$2:$C$10)
LOOKUP函数的多条件查找语法:
=LOOKUP(1,0/((查找区域1=查找值1)*(查找区域2=查找值2)),返回区域)
详见文章:
至今已超过500人出错,LOOKUP函数这对括号问题,你被坑过没?
LOOKUP是一个很难驾驭的函数,一不留神就出错,新手还是适合用VLOOKUP。
一次报名成为VIP会员,所有课程永久免费学,采用录制视频+微信答疑的形式学习,仅需888元,待你加入。
推荐:至今已超过500人出错,LOOKUP函数这对括号问题,你被坑过没?
上篇:VLOOKUP函数滚一边去,我才是Excel真正的查找之王!
你还遇到什么情况导致出错?
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)