如何用INDIRECT函数跨工作簿动态引用指定单元格?
动态跨工作簿引用单元格问题
需要在Workbook2中,根据C4:C35区域内的工作表名称,动态引用Workbook1对应工作表的$C$3单元格,尝试用INDIRECT函数编写公式但未正常运行。
常规手动引用格式
='[Workbook1.xlsx]Sheet1'!$C$3
尝试的无效公式
= INDIRECT ( “ ‘ “ & A5 & C4 & “ ‘ ! “ & $C$3 )
单元格取值说明
- A5 =
[Workbook1.xlsx] - C4 = Workbook2中工作表名称列的起始单元格(范围为C4:C35)
- $C$3 = 目标引用的固定单元格位置
解决方案
公式失效的核心原因是字符串拼接格式错误,且使用了中文全角符号、多余空格。正确的公式如下:
=INDIRECT("'" & A5 & C4 & "'!$C$3")
关键修正点
- 格式匹配:用英文半角的
"'"包裹工作簿+工作表部分,和手动引用的格式完全对齐 - 符号规范:所有引号、连接符
&都要用英文半角,避免中文符号导致的解析错误 - 移除冗余空格:公式参数内的空格会被INDIRECT识别为文本内容,必须删除
注意:如果Workbook1处于关闭状态,INDIRECT函数无法直接读取外部工作簿数据。这种情况下可以改用Power Query批量提取数据,或通过定义名称结合INDEX函数实现引用。
内容的提问来源于stack exchange,提问作者Tony Ingle
相关产品推荐
相关产品推荐

