点击蓝字【秋叶 Excel】👆
发送【交流】
立即进【秋叶同学会】交流Excel!
即使是经常使用 Vlookup 的你,以下 3 个小技巧,也不一定统统都会。不信?
假如你现在拿到了一张表格,如下图,一共有 4 张工作表,它们分别是:「查询表」、「销售一部」、「销售二部」和「销售三部」。现在需要你从各个销售部门中找到「查询表」里员工 9 月销售额并填到对应位置,你会怎么做?第一种情形的话,好说,用 Vlookup 依次从各个表里面查找并提取数据就行。推荐给你一套组合函数:Iferror+Vlookup。完整公式如下:
=IFERROR(IFERROR(VLOOKUP(A2,销售一部!$B$2:$C$8,2,0),VLOOKUP(A2,销售二部!$B$2:$C$9,2,0)),VLOOKUP(A2,销售三部!$B$2:$C$10,2,0))
大概意思是,如果在销售一部找不到,就去销售二部找,再找不到就去销售三部(找完所有表还是没有的话,会显示为乱码#N/A)。
3 个表,用 3 个 Vlookup,2 个 Iferror;n 个表,就用 n 个 Vlookup,(n-1)个 Iferror 嵌套。这种方法的优点是理解成本低,只需要根据工作表数量嵌套 Iferror 和 Vlookup 函数就可以了。但缺点也很明显,一旦表格数量太多,那公式就有亿点点长了……完整公式如下:
=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"销售一部";"销售二部";"销售三部"}&"!B:B"),A2),{"销售一部";"销售二部";"销售三部"})&"!B:C"),2,0)
你只要会修改以下参数,就可以套用该公式:
{}数组里的内容:{"销售一部";"销售二部";"销售三部"} 多个工作表名称,用分号分隔;B:B:查找值在各个表中的哪一列,需要确定各个表的该列是否存在这个查找值;比如上面这个案例中,查找值在表格的 B 列,所以是 B:B;2:返回值的列数,9 月销售额是在 B:C 区域中的第 2 列。
学会了前两种方法,基本可以满足你跨表查找的需求了。=VLOOKUP(A2,VSTACK(销售一部:销售三部!$B$2:$C$10),2,0)
先用 VSTACK 函数将三个表中 B2:C10 的数据竖直拼接起来,然后用 Vlookup 函数在这些数据里查找。不过,使用这个函数还有一些注意事项,记得拿小本本记下来哈~❶ $B$2:$C$10 是根据数据最多的一个工作表的来填写的,不能直接选择整列。比如本案例中,销售一部、销售二部的查找区域都是 B2:C9,销售三部是 B2:C10。❷ VSTACK 函数目前只有 Office 365 可以用,其他版本无法使用。
写到最后:
❶ 我们只要碰到从表格中查询并列出匹配信息的情形,首先就应该考虑「Vlookup 能不能做到」。❷ 当 Vlookup 出错时,注意检查这 4 件事:检查引用区域是否包含查找对象(特别是批量填充公式时,引用范围是否需要锁定);❸ 学函数公式,不要求一次就成功,最要紧的就是动手,边做边观察、调试,如果同时有人一起交流学习,互相促进就更好了。正好,咱们秋叶家研发了一门《秋叶 Excel 3 天集训营》课程:报名后可加入专门的微信群,群内不仅有讲师、助教毫无保留地向你分享 Excel 干货,还有更多的 Excel 同好一起学习~
▲ 扫码报名后
自动弹出班主任微信二维码
记得添加哦~
如果这篇文章对你有帮助,请帮忙「点赞」「在看」「转发」。这对我很重要,能给我更多动力,持续分享优质的内容!