INDIRECT函数使VLOOKUP函数实现多表查询

当有很多不同的表时,使用VLOOKUP函数从用户指定的表中获取值 。
如图1所示,在名为“东区”的表中存储着水果及其单价 。

INDIRECT函数使VLOOKUP函数实现多表查询


图1
在图1中,单元格E3是输入单元格,在其中输入要查找单价的水果名称,示例中为“香梨” 。
在单元格E4中是查找水果单价的公式:
=VLOOKUP(E3,东区,2,TRUE)
可以看出,VLOOKUP函数从“东区”表中获取了相应的值 。
然而,在其他区中水果的售卖价格不一定相同,如图2所示 。
INDIRECT函数使VLOOKUP函数实现多表查询


图2
此时,我们可以再增加一个输入单元格,用于输入水果所在的区,如图3所示 。
INDIRECT函数使VLOOKUP函数实现多表查询


图3
接着,更新单元格E4中的公式为:
=VLOOKUP(E3,E2,2,TRUE)
但是,得到的确是出错信息,如图4所示 。
INDIRECT函数使VLOOKUP函数实现多表查询


图4
这表明,VLOOKUP函数不会将单元格中的内容识别为表的名称 。
技巧
实际上,我们此时需要其他函数的辅助,才能达到我们的目的 。
技巧:使用INDIRECT函数作为第2个参数
INDIRECT函数将单元格中的文本内容转换为有效的引用 。本例中,会将单元格E2中的文本“东区”转换成相应名称的表的区域 。
修改单元格E4中的公式为:
=VLOOKUP(E3,INDIRECT(E2),2,TRUE)
得到正确结果,如图5所示 。
INDIRECT函数使VLOOKUP函数实现多表查询


图5
将输入单元格E2的内容修改为“北区”,在单元格E4中将自动更新为北区香梨的单价,如图6所示 。
INDIRECT函数使VLOOKUP函数实现多表查询


图6
结语
【INDIRECT函数使VLOOKUP函数实现多表查询】在使用VLOOKUP函数时,将INDIRECT函数作为其第2个参数并配合名称,能够实现在不同的表中查找数据 。

    猜你喜欢