分享

如何在多个工作表查询

 初风Excel教学 2023-02-22 发布于广东

走过路过不要错过

如下图所示,工作表“1月”、“2月”、“3月”是三个月份的考试成绩。
在“查询表”中根据指定月份和姓名,查询对应的分数。
“查询表”的下拉列表中选择的月份不同,就要在不同的工作表中查找。
除了使用查找函数vlookup外,还需搭配使用indirect函数来处理变化的查找区域。
在D3单元格输入公式:
=VLOOKUP(C3,INDIRECT("'"&B3&"'!$A$1:$B$7"),2,FALSE)

公式解析:
(1)如果本例中查询月份始终不变,比如在工作表“1月”中查找指定姓名的分数,在D3单元格输入公式:
=VLOOKUP(C3,'1月'!$A$1:$B$7,2,FALSE)
查找区域中的感叹号“!”是引用的工作表名称和单元格区域之间的分隔符。
(2)vlookup函数的查找区域是不确定的,需要使用indirect函数生成查找区域。
indirect函数可以将文本转化为引用。比如在B1单元格输入公式:="B3",在B1单元格内显示文本“B3”。

如果在B1单元格输入公式:=INDIRECT("B3"),返回的是B3单元格的值“abc”。
indirect函数可以将文本转为引用。对于indirect函数来说,括号内的"B3"不再是文本B3,而是单元格B3。公式:=INDIRECT("B3")等同于公式:=B3。

回到我们的例子中,如果在查找区域外套上一个indirect函数,公式也能返回正确的结果。
如下图所示,在D3单元格输入公式:
=VLOOKUP(C3,INDIRECT("'1月'!$A$1:$B$7"),2,FALSE)
进一步的,indirect函数中的文本“1月”不直接输入,而是引用B3单元格,这样当B3单元格选择的月份变化时,indirect函数返回的引用区域也会变化。因此D3单元格的公式变形为:
=VLOOKUP(C3,INDIRECT("'"&B3&"'!$A$1:$B$7"),2,FALSE)

(3)vlookup函数查找不到值时返回错误值#N/A。可以使用IFNA函数,设置查找不到值时返回“查找不到”。

点个在看你最好看


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多