含義
此函式立即對引用進行計算,並顯示其內容。當需要更改公式中
單元格的引用,而不更改公式本身,請使用此函式,INDIRECT為間接引用。
語法
INDIRECT(ref_text,[a1])
Ref_text 為對單元格的引用,此單元格可以包含 A1-樣式的引用、R1C1-樣式的引用、定義為引用的名稱或對文本字元串單元格的引用。如果 ref_text 不是合法的單元格的引用,函式 INDIRECT 返回錯誤值#REF!或#NAME?。
如果 ref_text 是對另一個工作簿的引用(外部引用),則工作簿必須被打開。如果源工作簿沒有打開,函式 INDIRECT 返回錯誤值#REF!。
a1 為一邏輯值,指明包含在單元格ref_text 中的引用的類型。
如果 a1 為 TRUE 或省略,ref_text 被解釋為 A1-樣式的引用。
如果 a1 為 FALSE,ref_text 被解釋為 R1C1-樣式的引用。
使用方法
要使用這個函式主要記住以下兩點就可以輕鬆掌握:
下面將以下圖為例對函式參數進行簡單的說明,其中我們將B2單元格的名稱設定為TEST:
直接指定單元格地址:=INDIRECT(“A4”),這時會返回值”A3”。因為參數給定的既是字元串也符合單元格地址格式,所以直接對參數代表的單元格進取引用取值。
隱式指定單元格地址:=INDIRECT(A4),這個時候會返回值”3”,也就是A3單元格的值。因為參數指定的是A4,在這裡A4是一個單元格的地址而非字元串,所以要取出單元格A4的值(也就是字元串”A3”),然後對拿到的地址(A3)進行取值得到”3”。為了加深理解可以將公式改為=INDIRECT(A2),這個時候公式就會返回#REF!錯誤,因為單元格A2的值是”2”,而不存在一個地址為2的單元格,所以會報錯。
通過公式或者連線符得到單元格地址:=INDIRECT(B1&A3),這時會返回值”3”。雖然公式中參數有&連結,但參數仍不是字元串,更不是單元格地址或者名稱,首先要做的就是將參數轉化成字元串格式的地址或者名稱。B1的值是”A”,A3的值是”3”,通過&連線後得到字元串”A3”,因此公式也就轉化成了=INDIRECT(“A3”),這樣就會得到A3單元格的值。同樣也可以在指定參數的時候指定單元格的列標或者行標,如:=INDIRECT(“A”&A3),=INDIRECT(B1&”3”),=INDIRECT(B1&”$3”),=INDIRECT(“$A”&A3)都是要讀取A3單元格的值,也都會返回”3”。
使用單元格名稱:=INDIRECT(A5),會返回”B”,也就是B2單元格的內容。與前面一樣,將A5轉換成單元格名稱的字元串”TEST”,然後取得”TEST”所代表的單元格的值,即”B”。與=INDIRECT(“TEST”)等價。
示例
如果您將示例複製到空白
工作表中,可能會更易於理解該示例。
| A
| B
|
1
| 數據
| 數據
|
2
| B2
| 1.333
|
3
| B3
| 45
|
4
| George
| 10
|
5
| 5
| 62
|
公式
| 說明(結果)
|
=INDIRECT($A$2)
| 單元格A2中的引用值(1.333)
|
=INDIRECT($A$3)
| 單元格A3中的引用值(45)
|
=INDIRECT($A$4)
| 如果單元格B4有定義名“George”,則返回定義名的值(10)
|
=INDIRECT("B"&$A$5)
| 單元格B5中的文本值(62)
|
當在創建公式時,對某個特定單元格進行了引用。如果使用“剪下”命令,或是插入或刪除行或列使該
單元格發生了移動,則單元格引用將被更新。
如果需要使得無論單元格上方的行是否被刪除或是單元格是否移動,都在公式保持相同的單元格引用,請使用 INDIRECT
工作表函式。例如,如果需要始終對單元格 A10 進行引用,請使用下面的語法:
=INDIRECT("A10")