我們平常在單元格中輸入公式,比如=A2,將在此單元格中直接引用A2存儲的內容,這個過程叫做直接引用。
有時候,我們要引用的數據可能不是這個單元格的內容,而是這個單元格文本間接對應的內容。這種引用模式叫做間接引用,實現間接引用的函數是INDIRECT函數。
INDIRECT函數是EXCEL中的引用函數,此函數可以將一個字符表達式或名稱轉換爲地址引用。
語法:INDIRECT(單元格地址或名稱)
比如下圖所示的案例中,我在C2中輸入的公式是直接引用公式=A1,所以返回的結果就是A1存儲的內容:1。而在C4中輸入的公式是間接引用公式=INDIRECT(A4),A4中存儲的內容是A2,而A2作爲單元格地址存儲的內容是:2,所以C4返回的結果就是:2。
這就是直接引用和間接引用的區別。INDIRECT作爲間接引用函數,主要有兩個應用場景:製作二級下拉菜單和多工作表引用數據。
應用場景1 製作二級下拉菜單
爲了規範數據輸入,提高數據的準確性,我們可以通過“數據有效性”進行限定數據輸入。比如下表中,希望部門這一列中只能輸入“財務部、IT部、人力資源部、銷售部”這四個部門,我們可以點擊“數據”選項卡中的“數據有效性(數據驗證)”,在來源中選擇保存有這四個單元格的數據區域。
這樣我們就可以實現在輸入時對部門進行限定的目的了。
但如果我們還要在此基礎上實現,如果部門列中選擇了財務部,那職務列中只能選擇財務部的職務。
那就需要通過以下的步驟來實現了。
1、首先我們需要現在建立如下圖所示的參數表:橫向是一級菜單的部門,縱向是每個一級菜單對應的職務。
2、選定A-D列的數據範圍,按【F5】鍵打開“定位條件”對話框,選擇定位“常量”。
用這個方法就可以只選擇A-D列有內容的單元格,不然我們就要自己手工一個個單元格進行選擇了。
3、接着點擊“公式”選項卡中的“根據所選內容創建”功能爲這個區域定義名稱。在彈出的對話框中選擇“首行”。
4、當我們打開左側的“名稱管理器”的時候,就可以看到裏面新增加了4個名稱,分別是:財務部、IT部、人力資源部、銷售部。名稱引用就是單元格地址的另一種引用方式,比如以前我們要A2:A5的內容,我們只能輸入單元格地址,現在就多了一種引用方式,就是用“財務部”三個字可以代表人事參數表的A2:A5的內容了。
5、最後再選擇需要形成二級下拉菜單的職務所在的B2單元格,點擊“數據”選項卡中的“數據有效性(數據驗證)”功能,在允許輸入的類型中選擇“序列”,序列的來源中輸入間接引用公式:=INDIRECT(A2)。
A2現在存儲的值是銷售部,銷售部作爲名稱包含的數據有:銷售代表、經理、總監,所以職務的下拉菜單就會顯示這三個職務。當A2的內容變化了,B2的下拉菜單的內容也會隨之發生變化。
當“人事參數表”的數據發生變化的時候,比如現在我在銷售部的崗位中增加了新的職務:銷售助理,同時調整了崗位的順序,我們只需要重新選擇這些單元格,再爲其命名一次就可以更新數據了。
應用場景2 多工作表引用數據
假如我有廣州、深圳、東莞、珠海四個城市的銷售明細數據,這四張表的表結構都是相同的,工作表的名稱也是城市的名稱。
現在我需要在彙總表中引用剛剛四張表的每一個E5單元格,按照傳統的做法,我們只能一張一張工作表去引用數據。
有了間接引用函數INDIRECT之後,你就可以把頂部的城市當作工作表名稱來使用了。
輸入公式:=INDIRECT(B1&"!E5")
以上,就是本篇文章的全部內容,總結一下:
間接引用函數INDIRECT
應用場景1:結合數據有效性,製作二級下拉菜單
應用場景2:多工作表引用數據時,讓工作表名稱變成動態的