INDIRECT函数可将文本字符串转换为单元格引用,支持跨表引用、动态地址生成、命名区域调用及含特殊字符工作表名的正确解析。

如果您希望在 Excel 中根据文本字符串动态引用单元格或区域,则可以使用 INDIRECT 函数。该函数将文本形式的单元格地址转换为实际的引用,从而实现灵活的数据调用。以下是具体操作方法:
一、基础语法与基本用法
INDIRECT 函数的核心作用是将代表单元格地址的文本字符串解析为有效引用。它不随公式所在位置变化而改变引用目标,因此适用于构建可变引用场景。
1、在目标单元格中输入公式:=INDIRECT("A1")。
2、确保引号内的地址格式正确,例如"A1"、"Sheet2!B5"或"$C$3"。
3、按 Enter 键确认,函数将返回 A1 单元格中的值。
二、引用其他工作表中的单元格
当需要跨工作表调用数据且工作表名称可能变动时,可将工作表名作为变量拼入文本字符串,再由 INDIRECT 解析。
1、假设工作表名称存于 D1 单元格,目标单元格为 E1,则构造文本字符串:D1&"!F10"。
2、在另一单元格中输入公式:=INDIRECT(D1&"!F10")。
3、确保 D1 中的内容为有效工作表名(如"销售数据"),且该工作表中存在 F10 单元格。
三、结合 ROW 或 COLUMN 生成动态地址
利用 ROW 或 COLUMN 函数生成序列数字,再拼接为地址文本,可实现逐行/列自动引用不同单元格。
1、在 A1 输入公式:=INDIRECT("B"&ROW())。
2、向下拖拽填充,A2 将变为 =INDIRECT("B2"),A3 变为 =INDIRECT("B3"),依此类推。
3、确保被引用列(如 B 列)中存在对应行的数据,否则返回 #REF! 错误。
四、引用命名区域
INDIRECT 可识别已定义的名称,将名称字符串转为对应区域的引用,常用于下拉菜单联动或汇总统计。
1、先通过“公式 → 定义名称”创建一个名称,例如命名为“销售额”,引用位置为 =Sheet1!$D$2:$D$100。
2、在任意单元格输入公式:=INDIRECT("销售额")。
3、该公式将直接返回 D2:D100 区域的第一个值;若需返回整个区域结果,须配合数组公式或聚合函数(如 SUM、AVERAGE)使用。
五、处理带空格或特殊字符的工作表名
当工作表名称含空格、连字符或中文时,必须用单引号包裹工作表名,否则 INDIRECT 无法正确解析。
1、若工作表名为“2024-汇总”,则引用其 C5 单元格的正确写法为:=INDIRECT("'2024-汇总'!C5")。
2、若工作表名存于 G1 单元格,则公式应为:=INDIRECT("'"&G1&"'!D8")。
3、遗漏单引号会导致 #REF! 错误,此时需检查引号是否成对且位置正确。









