Microsoft Lab
全部软件
Excel查找与引用(Lookup & Reference)约 4 分钟

INDIRECT Function INDIRECT 函数

重点内容


单元格引用

=INDIRECT(A1) 的运作逻辑:如果 A1 里存的文本是 "D1",那么 INDIRECT(A1) 就等同于 =D1,会去取 D1 单元格实际的值。

如果不用 INDIRECT,直接写 =A1,Excel 只会把 A1 里的内容当成普通文本 "D1" 显示出来,不会去引用真正的 D1 单元格。

搭配 & 运算符可以动态拼接引用字符串,比如用某列字母("D")加上 A1 单元格里的行号数字,拼出一个完整的单元格引用文本再交给 INDIRECT 解析:

=INDIRECT("D"&A1)

范围引用

=SUM(INDIRECT("D3:D6"))

把文本字符串 "D3:D6" 转换成一个真正的范围引用,再用 SUM 求和。


命名范围

假设已经建立了一个命名范围 "Scores",指向 D1:D3:

  • 直接写 =AVERAGE("Scores") 会返回错误,因为 Excel 会把 "Scores" 当成一段文本,没办法对文本求平均值
  • 要写成 =AVERAGE(INDIRECT("Scores")),让 INDIRECT 先把文本 "Scores" 转换成真正的命名范围引用

跨工作表引用

比如 Sheet1 的 A1 是 10,Sheet2 的 A1 是 20,Sheet3 的 A1 是 30:

=INDIRECT(A1&"!A1")

如果某个单元格里存的文本是 "Sheet2",这条公式就会动态引用 Sheet2 的 A1(结果是 20)。

📌 如果工作表名称含有空格或特殊字符,工作表名要用单引号括起来,比如 'Sheet 2'!A1。


学完你会

常见错误

  • 忘记 INDIRECT 是易失性函数(volatile function),会在工作表每次重算时都重新计算,大量使用可能拖慢运算速度
  • 跨工作表引用时工作表名称含空格却没加单引号,导致公式报错
  • 把 INDIRECT 和普通的单元格引用搞混,忘记 INDIRECT 的参数必须是"文本字符串"(或返回文本的公式),不能直接给一个引用

Sources

Blog / Website:

  1. Indirect
只记在你的浏览器里,换设备不会同步。