分享

最经典的嵌套,Vlookup从多个表中查找

 Excel教程平台 2023-03-23 发布于四川

哈喽,大家好。

今天来给大家讲讲VLOOKUP函数,如果查找区域有多个,是变动的。

譬如有多个工作表,怎么用VLOOKUP函数进行查找呢?

今天给大家介绍两种思路:

1、IF函数确定查找范围

2、Indirect函数确定范围

看下图,每个月份的数据结构是相同的,如果要查找1月的数据,公式为=IFERROR(VLOOKUP(A2,'1月'!A:B,2,0),"")

查找2月的数据,公式为=IFERROR(VLOOKUP(A2,'2月'!A:B,2,0),"")

可以看出两个公式只是查找区域中的工作表名称不同。怎么不用手动修改工作表名称而自动获得需要的查找区域呢?

思路1:用IF函数确定查找区域实现多表查找

完整的公式为:=IFERROR(VLOOKUP($A2,IF(B$1="1月销售额",'1月'!$A:$B,IF(B$1="2月销售额",'2月'!$A:$B,IF(B$1="3月销售额",'3月'!$A:$B,""))),2,0),"")

公式中IF(B$1="1月销售额",'1月'!$A:$B,IF(B$1="2月销售额",'2月'!$A:$B,IF(B$1="3月销售额",'3月'!$A:$B,"")))

与我们以往使用IF返回某个具体的结果不同,这里是利用IF函数返回不同的表格区域。

这种思路的弊端挺明显,如果工作表很多则嵌套太多,不方便运算,下面再推荐第二种思路。

思路2:用INDIRECT函数确定查找区域实现多表查找

这个思路是基于'1月'!A:B、'2月'!A:B、'3月'!A:B这样的查找区域是有规律的,可以连接符构造。构造后再套用INDIRECT函数返回对应的表格范围。

完整的公式为:=IFERROR(VLOOKUP($A2,INDIRECT(LEFT(B$1,2)& "!A:B"),2,0),"")

最后再给大家唠唠数据源的问题,在日常工作中,尽量避免将单表拆分为多表的情况,比较科学的做法是在数据源增加一列做区分,就本例而言增加一列月份即可,不管做汇总还是做匹配都更方便。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多