作者:乔山办公网日期:
返回目录:excel表格制作
有朋友提到在使用vlookup函数查找的时候结果为什么是错的?明明查找规格都是一样的,并且没有任何格式差别,怎么会出错了呢?
看到朋友发来的文件才知道原来是通配符惹的祸?在excel中星号(*)是有特别意义的,如果你需要查找的内容中包含星号,那么星号的本身是(~*),这样才能正确查找!
- 非通配符:~加在通配符*或?前,此时*或?不再作为通配符使用,仅仅作为其符号本身这个字符
- 通配符:如果不加~,作通配符使用,分别代表任意个字符和任意一个字符!
vlookup函数查找失败案例
- 案例1:查找数量
在d3中输入公式=VLOOKUP(D4,$A$4:$B$6,2,0),这是vlookup函数的最基本的用法,语法结构就跟大家写了!
在excel中只会理解【女童连衣裙*XL】为以女童连衣裙为开头或者以XL为结尾的关键词,所以第一个案例中查找的结果是第一个品名的数量15,导致出错!
- 案例2:根据应纳所得税查找对应区间税率
当在有通配符*存在的情况下,很多函数可能都会出错!比如使用SUMIF函数求和、COUNTIF函数!唯独lookup函数在查找的时候都能准确!
- 好了,看一下文章开头说的案例中根据【产品规格查询比重】的正确解法吧,在I2中输入公式
=LOOKUP(1,0/(G2=库存表!$D:$D),库存表!$E:$E)
公式解释:判断G2是否等于d列,如果相等就是true,否则就是Flase,在excel中true是代表1,Flase代表0,将0/0转为错误,根据lookup函数【以大欺小】的查找规则,将返回0对应的值(即返回小于1的最大值)
- lookup函数的固定查找套路,适用于单条件、多个条件查找
=lookup(1,0/((条件1)*(条件2)*(条件3)……(条件n)),返回结果所在区域)
本案例中刚好还有一个求和,如果直接输入公式
=SUMIF(入库明细!G:G,D2,入库明细!R:R)
得到的结果明显是错误的,sumif函数将前2个规格的产品默认为一个了
正确的解法:当然前面的失败案例使用vlookup函数也是可以的,就是需要套用一个subtitute函数将*替换为他的本身(~*)
关于今天的分享就到这里了,小编觉得lookup函数才是我们真正需要的查找函数!如果你还有疑问,欢迎在评论区留言交流一下!你的转发/赞赏将会是我继续创作的动力!
lookup函数以大欺小规则的其他用法:
从办公室文员那里发来的员工休假管理表,人事经理看了之后就怒了