与 30万 粉丝一起学Excel
VLOOKUP函数很好用,但并非最厉害的查找函数。经常会出现一些让VLOOKUP很无力的难题,比如下面几个问题,跟着卢子来看看。
1.根据规格,查找数量出错
公式没问题,查找的时候却找错值。25*110查找到250*110的对应值。
=VLOOKUP(E2,A:B,2,0)
这是因为规格中出现通配符*,只要是包含的就认为一样。比如用*不加班,查找Excel不加班,是可以正常查找到。
可以将*替换成其他字符,比如×,这样才不会查找出错。通配符在替换的时候,前面要加~。
而用LOOKUP,即使存在通配符,也不影响查找,只有一模一样的规格才可以查找到。
=LOOKUP(1,0/(E2=$A$2:$A$7),$B$2:$B$7)
语法:
=LOOKUP(1,0/(查找值=查找区域),返回区域)
2.根据编码,查找对应的名称
左边的编码是数值格式,右边的编码是文本格式,格式不一样,再加上是逆向查找,用VLOOKUP比较吃力。
LOOKUP只要套上经典查找模式的语法,再通过--将文本格式转换成数值格式就可以。
=LOOKUP(1,0/(
--E2=$B$2:$B$30),$A$2:$A$30)
--是将文本转数字,&""是将数字转文本。因此下面的公式也可以。
=LOOKUP(1,0/(E2=$B$2:$B$30
&""),$A$2:$A$30)
3.根据全称,查找简称对应的编码
这个VLOOKUP几乎无能为力。
如果是根据简称查找全称,这个就可以。加通配符,其实就跟案例1的原理一样。
=VLOOKUP("*"&A2&"*",E:F,2,0)
而LOOKUP却支持这种查找。FIND就是判断内容有没出现。
=LOOKUP(1,0/FIND($A$2:$A$30,E2),$B$2:$B$30)
语法:
=LOOKUP(1,0/FIND(简称,全称),返回区域)
4.根据员工编号,查找所有数据
也就是前2天的案例,用VLOOKUP查找,详见文章:收藏!2022年工资自动汇总、查询模板
VLOOKUP返回多列的用法,姓名是第2列,所属部门是第3列,依次类推。COLUMN就是向右拖动,就是生成数字。
=VLOOKUP($C$2,工资表!$A:$O,COLUMN(B1),0)
其实用LOOKUP也完全可以。返回区域的B列不锁定,右拉就变成C、D,因此就能查找到所有列的对应值。
=LOOKUP(1,0/($C$2=工资表!$A$3:$A$9),工资表!
B$3:B$9)
VLOOKUP与LOOKUP的作用几乎一样,但是LOOKUP更加灵活多变,能够更好的应对各种查找问题,当之无愧的查找之王!
请把「Excel不加班」推荐给你的朋友
有话要说...