本篇介紹如何使用 Excel 的 INDIRECT 函數製作動態參照的表格,隨著資料自動產生對應的儲存格參照。

INDIRECT 函數用法

INDIRECT 這個函數可以依據文字所指定的儲存格位置,取得該儲存格的內容,其語法如下:

=INDIRECT(文字位置)

其中的文字位置就是一般我們所使用的儲存格位置,只不過要以文字的方式表示,例如放入 "A3" 這個文字的話,INDIRECT 函數就會傳回 A3 儲存格內的值。

當然在實務上,我們並不會直接將普通的文字位置放在 INDIRECT 函數中使用(如果要這樣寫的話,不如直接寫 A3 這樣的參照就好了),而是讓 INDIRECT 從其他的地方取得文字的儲存格位置,然後再去把對應位置的資料取出來。

以下是一個簡單的範例,我們讓使用者輸入「儲存格位置」,然後再使用 INDIRECT 函數將該位置的內容取出來:

=INDIRECT(C2)

INDIRECT 取得參照

INDIRECT 也可以取用不同工作表的資料,只要在位置的指定時,使用含有工作表的位置即可,語法如下:

工作表!儲存格位置

假設我們的工作表2的表格如下:

Excel 表格

若要取用工作表2的資料,只要改動「儲存格位置」即可,而原本的 INDIRECT 的公式內容維持不變:

INDIRECT 取得參照

如果是不同的 Excel 檔案,也是可以直接靠著 INDIRECT 取得資料,含有 Excel 檔案的位置語法如下:

[檔案名稱]工作表!儲存格位置

假設我們有另外一個 Excel 檔為清單.xlsx,內容如下:

Excel 表格

要取用不同檔案的內容,同樣也是改動「儲存格位置」即可:

INDIRECT 取得參照

動態參照表格

熟悉了 INDIRECT 函數的使用方式之後,接下來就可以使用這個函數製作動態參照的表格。

在 Excel 的公式中,& 這個運算子可以將兩段文字串接起來,例如 "AB"&"CD" 在計算後就會變成 "ABCD"

以下我們利用 & 運算子,將使用者輸入的「Excel 檔案」、「工作表」與「儲存格位置」三的欄位組合成完整的位置,然後再利用 INDIRECT 函數取出其中的資料:

=INDIRECT("["&A2&"]"&B2&"!"&C2)

動態參照表格

參考資料:Exceljet