Excel 中 INDIRECT 函數能將「字符串」轉換為真實的「單元格引用」,配合 ROW() / COLUMN() 可實現動態跨行跨列引用,是動態報表、矩陣運算的利器。
=INDIRECT(ref_text, [a1])
// ref_text: 單元格地址字符串,如 "B2"
// a1: TRUE(默認) A1 引用風格;FALSE R1C1 風格
在任意行輸入公式,自動計算該行 B、C 列之和:
=INDIRECT("B" & ROW()) + INDIRECT("C" & ROW())
原理:ROW() 返回當前行號(如 5),拼接成 "B5"、"C5",INDIRECT 轉為真實引用取值。
=INDIRECT("'" & A1 & "'!B2")
// A1 儲存 Sheet 名稱(如 "1月"),動態引用該 Sheet 的 B2
=INDIRECT("D" & ROW()) // 當前行 D 列
=INDIRECT("E" & (ROW()-1)) // 上一行 E 列
=INDIRECT("F" & (ROW()+2)) // 下兩行 F 列
=INDIRECT(CHAR(64+COLUMN()) & "10") // 當前列第 10 行 (A=65)
A1: =INDIRECT("B" & ROW()) // 下拉填充 → A2=B2, A3=B3...
普通引用 =B5 插入行會變 =B6,但 INDIRECT("B"&ROW()) 永遠指向當前行 B 列,極其穩定。
#REF!INDEX/OFFSET 非易失性,大數據場景優先考慮INDIRECT("R[1]C", FALSE) R1C1 風格相對引用,不依賴列字母// 當前 Sheet 名為 "2024-01"
=INDIRECT("'" & TEXT(TODAY(),"yyyy-mm") & "'!B" & ROW())
// 自動引用當月 Sheet 同行 B 列數據
善用 INDIRECT,告別手動修改公式的繁瑣。