Excel 入门选手,都会接触到 Vlookup 查找函数,只不过,这个函数真的是让人又爱又愁啊!
爱在它强大的查找功能,愁在使用它,你一不留神就出错?
最关键是还不知道错在哪里?真的会令人头大!!!
其实呀,我们还有比 Vlookup 好用10倍的函数,就是 Lookup函数!
不仅查找功能强大,还不容易出错,你还不会用真的就太可惜了!
下面,一起来学习吧!
1
单条件查找
1)升序排序
先选中数据区域,点击【数据】——【排序】——【主要关键字】——【姓名】——【确定】。
2) 输入公式
=LOOKUP(E2,A2:A12,C2:C12)
我们以后碰到这类查询问题,都可以按这个模式套用:=LOOKUP(查找值,查找区域,返回结果区域)
例如,案例中,F2单元格的公式:
查找区域 A2:A12,即姓名列,找到与 E2 相同的值”王武“;
返回结果区域,即部门这列,找到”王武”对应的部门位置,返回结果:策划部。
👉 敲重点:
在使用 LOOKUP 函数时,【查找区域】必须要升序排序。
否则可能得不到正确结果。
如下图:明明”王武”的部门是 策划部,公式结果却是 财务部!
若发现返回结果出错了,首先检查自己有没有进行升序排序!!!
重要的事要说三遍,一定要先升序排序!一定要先升序排序!一定要先升序排序!
2
数组型查找
这时就有小伙伴纳闷了:写函数公式,还要时刻注意给原来的数据排序,这也太麻烦了!
别急!不想排序的话,Lookup 也有办法。
请往下看!
单条件查询
如下图,根据姓名查询部门:
看起来好复杂啊!
不怕,以F2 单元格中的公式为例,我们先来看看公式解析~
=LOOKUP(1,0/(E2=A2:A12),C2:C12)
1) E2=A2:A12 先判断 A2:A12 (姓名列)是否等于E2(”王武”)。
如果是,则返回 True,否则返回 False;这时形成由 True 和 False 组成的数组。
2)0/({FALSE;FALSE……}),用 0 除以判断结果形成的数组。
0/TRUE=0,0/FALSE=#DIV/0!
在四则运算中,True 相当于 1,False 相当于 0,形成由 0 和#DIV/0!组成的数组。
如图所示:
3) Lookup 函数先在【查找区域】中查找与 1 匹配的值。
如果找不到,则继续找小于且最接近查找值的数值。
在【查找区域】中 0 最接近 1,所以结果返回 0 对应的C2:C9中的值,策划部。
PS:Lookup 函数是根据二分法进行跳跃式查找的,它会忽略#DIV/0!错误值,所以查找区域中仅存在数值 0,且 0 也是小于等于 1 的数值。
简言之,这个公式的关键在于第 2 参数:
0/(E2=A2:A12生成一个由数值 0 和错误值#DIV/0! 组成的数组。
再从这个数组中找到小于或等于 1 的最大值 0,最后返回第 3 参数:C2:C9对应的值。
敲重点:
当我们碰到单条件查找的问题时,可以按照下面的公式直接套用!
=LOOKUP(1,0/(条件=条件区域),返回区域)
看案例!
如下图,我们需要根据姓名查询性别:
以E2 作为条件,A2:A12 为条件区域,B2:B12 为返回区域,套用:
得到 G2 单元格公式:
=LOOKUP(1,0/(E2=A2:A12),B2:B12)
微信扫一扫加关注,Office自学网官方微信公众号,
专注分享软件安装和视频教程,让你一号在手,办公无忧!