- INDIRECT 評估以文字形式建構的引用以傳回其內容,從而允許動態引用。
- 支援 A1(預設)和 F1C1 樣式;可與 SUM 或 VLOOKUP 結合使用以產生多表報告。
- 外部參考需要開啟來源工作簿;網格外的參考將傳回錯誤。
如果你曾經想要一個公式來指向 儲存格、範圍,甚至另一個工作表INDIRECT 函數就是您的好幫手,無需每次都重寫公式。有了它,您可以根據文字、儲存格或兩者的組合建立引用,Excel 會評估該引用並立即傳回其內容。
間接的好處在於它允許你 無需修改公式即可變更公式指向的儲存格或範圍它非常適合用於資料分佈在多張工作表的報表、儀表板和範本。它還可以與其他函數(SUM、VLOOKUP 等)完美配合,實現鍊式參考和集中式報表。
Excel 中的 INDIRECT 函數扮演什麼角色?
間接回報 我們以文字形式傳遞的引用內容這個文字字串可以像「B2」一樣簡單,也可以像「『Sales 2024』!C5」一樣複雜;它也可以來自其他儲存格中的值,我們使用 & 運算子將這些值連接起來以建立完整的參考。
當發送到 INDIRECT 的引用有效時,Excel 會對其進行評估,並 顯示該儲存格或區域的值如果引用無效或指向工作表邊界之外,則會出現#REF! 或#VALUE! 等錯誤,具體取決於具體情況。
有一個重要的細微差別:如果你透過文字引用另一本書(文件), 原始資料必須公開 因此函數可以解析引用。如果該檔案已關閉,INDIRECT 將傳回錯誤(#REF! 或 #VALUE!)。
此外,Excel 不會接受超出網格範圍的參考:如果文字指向第 1.048.576 行或第 XFD 列(16.384)之外, INDIRECT 無法解決此問題,因此會失敗.
INDIRECT 語法和參數
一般語法是 =INDIRECT(參考;)第一個參數是必需的,第二個參數是可選的,它們控制如何解釋引用。
文獻 這是表示要評估的引用的文字。它可以是文字字串(例如“B3”)、單元格的內容(A2、A3 等)、指向單元格或範圍的定義名稱,甚至可以是使用 & 組合多個部分實時構建的引用。
a1 是一個可選的邏輯值,指示引用樣式:如果它是 TRUE(或省略它),Excel 會解釋 A1幅面;如果為 FALSE,則考慮樣式中的引用 F1C1這個參數不是指向單元格的參數,而是定義引用的「語言」的參數。
請注意,如果您傳入 ref 的文字字串不代表有效引用(例如,語法不正確或範圍不存在), INDIRECT 將會回傳錯誤 (#REF! 或 #VALUE! 取決於上下文)而不是預期值。
參考文獻 A1 與 F1C1 (R1C1):意義及使用時機
在 Excel 中,最常見的樣式是 A1幅面其中列以字母(A、B、C…)標識,行用數字(1、2、3…)標識。像 A10 這樣的位址表示 A 列和第 10 行的交集。
替代風格是 F1C1 (F 代表行,C 代表列),其中兩個座標均為數字。例如,F5C10 表示第 5 行和第 10 列的交點, 這對於以程式設計方式自動化或產生引用很有用.
實際上,如果你沒有指定 INDIRECT 的第二個參數或將其設為 TRUE,則函數將假定你正在 A1如果需要將引用解釋為 F1C1,請將 FALSE 作為第二個參數。
基本範例和預期結果
讓我們來看看幾個典型情況來了解 INDIRECT 如何處理簡單引用、定義的名稱和文字連接。 這些模式是更複雜場景的基礎。.
| 數據 | 公式 | 描述 | 導致 |
|---|---|---|---|
| A2 =“B2”且B2 = 1,333 | =間接(A2) | 公式將 A2 中的文字(“B2”)作為地址,並 讀取B2的值. | 1,333 |
| A3 =“B3”且B3 = 45 | =間接(A3) | 再次,A3 保存位址;間接 返回 B3 中的內容. | 45 |
| B4 有一個定義的名稱(例如「George」),其值為 10 | =INDIRECT(“Jorge”) | 該函數使用 定義名稱 並檢索關聯值(儲存格 B4)。 | 10 |
| A5 = 5 且 B5 = 62 | =INDIRECT("B"&A5) | 該引用是透過將「B」與 A5 中的 5 連接起來而建構的; 指向B5. | 62 |
請注意,在所有情況下 參考文獻來自文本 (無論是文字、來自另一個儲存格或來自名稱)。這就是 INDIRECT 的本質:將有效字串轉換為即時引用。
使用簡要概述
如果您需要快速指南以避免迷路,這裡有一個非常有用且直接的迷你備忘單, 專為日常使用而設計:
- 使用表格 =INDIRECT(文本引用) 以便 Excel 將儲存或建構的引用評估為文字。
- 在引用參數中,你可以傳遞 完整的地址 (例如,C2)或用 & 連接字母和數字(例如,«C»&2)。
- 若要前往另一張工作表,請使用工作表名稱和儲存格編寫文字: =INDIRECT(«'»&Sheet&»'!Cell»).
請記住,如果工作表名稱中包含空格或特殊字符, 你必須用單引號將他的名字括起來 在文本中:例如“Sales Seville”。
從文字和單元格建構引用
INDIRECT 的一大優點在於可以連接各個部分,從而創建靈活的路徑。例如,如果在 B1 中儲存列字母,在 B2 中儲存行號,則可以使用 =INDIRECT(B1 & B2) Excel 將指向該位址。
另一方面,如果你想要固定列,並且只改變行的一個單元格,那麼 =INDIRECT("C" & B2) 它將始終傳回 C 列、B2 指示的行中的內容。
這些 技巧 當你建造時它們非常強大 帶有選擇器的面板 (數據驗證, 下拉菜單等等)來控制您在任何給定時間應該看向哪個方向。
參考其他表格和其他書籍
指向另一張紙,基本模式是 =INDIRECT(«'»&SheetName&»'!位址»)。如果工作表名稱位於 A1 中,而您想要轉到其儲存格 C1,則可以使用類似 =INDIRECT(«'»&A1&»'!C1»).
這個方法可以讓你整理一份「摘要」表,收集來自 具有相同結構的多個標籤透過更改儲存格中的工作表名稱(或透過下拉式選單),公式將自動引入該工作表中的資料。
對於外部書籍,思路類似,但有一個條件:文件必須處於開啟狀態。如果您嘗試以下操作 =INDIRECT("一月!"!B2") 如果書本合上,則會回傳錯誤; 打開它,它就會工作.
強大的組合:SUM、VLOOKUP 等
INDIRECT 很少單獨存在。當你將它與其他函數結合時,它的魔力就會顯現出來。例如,要對 A1 表格中 B5:B3 區域求和,你可以這樣寫 =SUM(INDIRECT(«'»&A3&»'!B1:B5»)).
要在工作表之間建立動態搜索,您可以定義範圍 VLOOKUP函數 來自間接: =VLOOKUP(E2; INDIRECT(«'»&D1&»'!A3:D6»); 4; FALSE)將D1的內容變更為另一個工作表的名稱,可以在不觸碰公式的情況下調整搜尋。
如果您只是希望在工作表的多個部分重複使用範圍,則可以使用以下方式產生引用 =間接(«'»&D1&»'!A3:D6») 然後將其用於適合您的任何角色。
插入行或列時鎖定引用
一個關鍵細節:經典參考,例如 = A5 如果你在其上方插入一行,則會更新(它將變為 =A6)。相反, =INDIRECT("A5") 即使該儲存格現在為空或包含其他內容,仍將以文字形式指向位址 A5。
當你需要時這非常有用 公式在一個方向上保持不變 儘管透過插入或刪除行/列來重構工作表,但還是需要謹慎使用:如果您確實想追蹤「之前」位於 A5 中的值,那麼直接引用可能會更好。
案例研究:標籤頁中按城市劃分的銷售額
假設您為每個城市(巴塞隆納、馬德里、塞維利亞、畢爾巴鄂)分別建立了一個電子表格,每個表格都位於相同的範圍中。您需要一個根據選擇器中選定的城市顯示關鍵資料的報表。 INDIRECT 完美契合.
步驟:建立「報告」表,新增一個帶有城市下拉清單的儲存格(例如,在 D3) 並建立匯總表。在該表的 E7 儲存格中寫入 =INDIRECT($D$3&»!B2″) 帶出所選城市B2中的數據。
符號 $ 設定對 D3 的引用,這樣當您在表格中複製或拖曳公式時, 始終閱讀選擇器然後,如果您在 D3 中將“塞維利亞”更改為“馬德里”,公式將自動從“馬德里”表中獲取 B2。
對其餘所需的單元格(B3、B4 等)重複該模式,並在城市表之間保持相同的佈局,以便映射一致,並且 維護量極小.
鍊式引用與靈活構造
INDIRECT 也適用於鍊式引用。例如,如果 A1 中有文字“B1”,B1 中有數字 5, =間接(A1) 將會先解出 A1(即 B1),然後傳回 B1 的值(即 5)。
有趣的是,你可以將位址拆分成幾個部分:公式本身中的一個字母和儲存格中的一行。使用 =INDIRECT("B" & A5) Excel 將 B 列與 A5 中的數字連接起來並傳回該交點處的值。
這種結構很有用,當你有 具有相同幾何形狀的矩陣 在多個工作表中,並希望引入特定單元格,而無需為每個選項卡重複公式。
良好做法、限制和常見錯誤
如果您要建立名稱包含空格或特殊字元的工作表的引用, 始終用單引號括起來 在鏈內:「Sales Sevilla」是正確的形式。
如果您嘗試建立超出 Excel 網格範圍的位址(超出 XFD 或第 1.048.576 行), 該函數將無法解決這個問題 並會顯示錯誤。這很符合邏輯:你請求的是一個不存在的東西。
使用對其他文件的外部引用時,請務必開啟目標工作簿。如果尚未打開, INDIRECT 無法評估路線 並根據情況傳回#REF! 或#VALUE!。
如果在連接時看到 #VALUE!,請檢查您是否添加了未轉換數字的文本,或者引號和感嘆號結構是否正確。 正確組裝 (尤其是提到葉子時:「葉子」!細胞)。
更多日常生活中有用的例子
假設您在 A3 中有一個月份列表,並且想要計算與所選月份對應的工作表 B1:B5 的和。使用 =SUM(INDIRECT(«'»&A3&»'!B1:B5»)) 當在 A3 中更改月份時,您將獲得要更改的總數。
若要定義輸入到其他計算的動態範圍,您可以使用 =間接(«'»&D1&»'!A3:D6»)。該短語建立了名稱位於 D3 中的工作表的範圍 A6:D1,然後您可以從那裡將其放入 SUM、AVERAGE 或查找中。
如果您出於某種原因更喜歡使用 F1C1 樣式(例如,在使用數字索引的巨集或模型中), 調整第二個參數:=INDIRECT("F5C10"; FALSE) 讓 Excel 以 F1C1 格式解釋字串。
報告和儀表板的提示
將目的地名稱(城市、月份、產品)集中在一張表格上,並使用資料驗證進行選擇。因此, 你只需改變選擇器 報告的其餘部分將自行更新。
標準化工作表之間的結構(相同的標題,相同的關鍵指標位置)。這種一致性將使以下公式 =INDIRECT(«'»&選擇器&»'!FixedCells») 工作時無憂無慮。
如果您需要凍結引用,即使插入行或列,也可以將直接引用變更為 間接固定文本這樣就可以防止Excel自動調整路徑了。
透過掌握這些思想,INDIRECT函數變成了通配符: 動態引用、多表報告和強大的公式 即使結構上進行微小改動,也不會造成任何影響。這是一款簡單易用且功能強大的工具,可將您的 Excel 工作簿提升到新的水平。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
