INDIRECT 函數

Excel 教學:INDIRECT 函數

1. INDIRECT 函數的用途

INDIRECT 函數用來返回由文字組成的有效儲存格引用,即根據傳入的文字值來動態產生一個參照。這個函數允許你引用範圍、儲存格或工作表,且這些引用是動態的,可以根據條件改變引用的內容。


2. INDIRECT 函數的語法

INDIRECT(ref_text, [a1])
參數說明
ref_text必填,一個以文字表示的儲存格參照或範圍名稱。
[a1]選填,如果為 TRUE 或省略,表示使用 A1 標準參照;如果為 FALSE,則使用 R1C1 參照。
  • A1 參照模式:如 A1B2,這是 Excel 中的預設參照方式。
  • R1C1 參照模式:如 R1C1R2C3,用數字表示行列位置。

3. INDIRECT 函數範例

? 範例 1:基本的 INDIRECT 函數使用
假設 A1 儲存格內容為 "B2"B2 儲存格的值為 50
? 使用 INDIRECT 來引用 B2 儲存格的值:

=INDIRECT(A1)

? 結果:50
這裡,INDIRECT(A1) 會返回儲存格 B2 的值,因為 A1 內容是 "B2"


? 範例 2:動態引用不同工作表的資料
假設有兩個工作表:Sheet1Sheet2Sheet1A1 儲存格內容是 "Sheet2!B2",而 Sheet2B2 儲存格內容為 200
? 使用 INDIRECT 來動態引用 Sheet2B2 儲存格:

=INDIRECT(A1)

? 結果:200
這裡,INDIRECT(A1) 會根據 A1 的文字內容 "Sheet2!B2" 引用 Sheet2B2 儲存格。


? 範例 3:動態選擇範圍
假設有多個範圍名稱,例如 Range1Range2,你想根據某些條件選擇範圍。
? A1 儲存格輸入範圍名稱(如 Range1),並使用 INDIRECT 來引用這個範圍:

=SUM(INDIRECT(A1))

? 假設 Range1 代表 B2:B5 的範圍,則這個公式會計算 B2:B5 的總和。


? 範例 4:R1C1 參照模式
假設有以下資料:

ABC
102030
405060

? 使用 INDIRECTR1C1 參照模式來引用 B2 的值:

=INDIRECT("R2C2", FALSE)

? 結果:50
這裡,"R2C2" 是 R1C1 參照格式,代表第 2 行第 2 列的儲存格,即 B2


4. INDIRECT 函數的應用

動態選擇儲存格或範圍:根據條件動態決定要參照哪個儲存格或範圍。
多工作表引用:根據儲存格中的文字動態引用不同工作表的資料。
參照命名範圍:使用命名範圍並根據條件動態引用。


5. INDIRECT 函數的限制

限制說明
無法處理錯誤的參照如果 ref_text 所指的儲存格或範圍無效,會返回 #REF! 錯誤。
不支援對動態範圍的直接引用當你嘗試通過 INDIRECT 引用動態範圍時,某些操作可能無法正常工作(如範圍大小改變)。
僅限於文字參照INDIRECT 需要文字格式的儲存格參照,無法直接處理其他函數的數值參照。

6. 總結

  • INDIRECT 函數允許動態引用儲存格、範圍或工作表,並能根據條件改變引用對象。
  • 它可以與其他函數(如 SUM, VLOOKUP, INDEX 等)結合使用,實現更靈活的資料查詢與計算。
  • 注意 INDIRECT 需要傳遞文字格式的儲存格參照,並且不支援直接參照動態範圍或處理錯誤參照。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *