如何通过列值引用电子表格其他工作表数据,支持可变工作表名与查询值?
解决方案
你可以通过INDIRECT动态构造工作表引用+查找函数的组合实现需求,所有公式直接填入Sheet2的B2单元格即可,支持工作表名、查询姓名动态变更,无需硬编码。
全版本通用公式(兼容Excel 2007及以上、所有版本WPS)
=VLOOKUP(B$1, INDIRECT("'"&A2&"'!A:B"), 2, FALSE)
公式逻辑说明:
B$1固定读取Sheet2第一行的待查询姓名,$符号避免公式下拉填充时行号偏移INDIRECT("'"&A2&"'!A:B")自动读取A2单元格存储的工作表名,动态拼接成合法的工作表范围引用,外层额外增加单引号兼容含空格、特殊字符的工作表名VLOOKUP精确匹配姓名后返回对应第二列(age列)的数值
高版本优化公式(适配Excel 365/2021、新版WPS、谷歌表格)
支持自定义无匹配时的返回值,逻辑更直观:
=XLOOKUP(B$1, INDIRECT("'"&A2&"'!A:A"), INDIRECT("'"&A2&"'!B:B"), "无匹配结果")
容错增强方案
如果需要屏蔽匹配失败、工作表不存在时的错误提示,可以在外层套IFERROR函数:
=IFERROR(VLOOKUP(B$1, INDIRECT("'"&A2&"'!A:B"), 2, FALSE), "查询失败")
内容的提问来源于stack exchange,提问作者user6018651
相关产品推荐
相关产品推荐

