實例分析INDIRECT函數

乍一看(尤其是在閱讀幫助時),函數 間接 (間接) 看起來很簡單,甚至沒有必要。 其本質是將看起來像鏈接的文本變成完整的鏈接。 那些。 如果我們需要引用單元格A1,那麼我們可以習慣性地做一個直接鏈接(在D1中輸入等號,點擊A1並回車),或者我們可以使用 間接 出於同樣的目的:

實例分析INDIRECT函數

請注意,函數參數(對 A1 的引用)是用引號括起來的,因此實際上這裡是文本。

“好吧,好吧,”你說。 “還有什麼好處?” 

但不要以第一印象來判斷——它具有欺騙性。 此功能可以在很多情況下為您提供幫助。

示例 1. 轉置

該流派的經典之作:您需要轉動垂直直徑

凹槽到水平(移調)。 當然,您可以使用特殊的插入或函數 交通運輸部 (移調) 在數組公式中,但您可以使用我們的 間接:

實例分析INDIRECT函數

邏輯很簡單:要獲得下一個單元格的地址,我們將字母“A”與特殊字符“&”和當前單元格的列號粘合在一起,函數提供給我們 COLUMN (柱子).

相反的過程最好做一些不同的事情。 由於這個時候我們需要對單元格B2、C2、D2等形成鏈接,所以使用R1C1鏈接模式代替經典的“海戰”更方便。 在這種模式下,我們的單元格將僅在列號上有所不同:B2=R1C2,C2=R1C3,D2=R1C4 等。

這是第二個可選函數參數的來源。 間接. 如果相等 說謊 (錯誤的),則可以在 R1C1 模式下設置鏈接地址。 所以我們可以很容易地將水平範圍轉回垂直:

實例分析INDIRECT函數

示例 2. 按區間求和

我們已經分析了一種使用函數在工作表上給定大小的窗口(範圍)求和的方法 處置 (抵消). 類似的問題也可以使用 間接. 如果我們只需要匯總某個範圍週期的數據,那麼我們可以將它從片段中粘合起來,然後將其變成一個完整的鏈接,我們可以將其插入到函數中 (和):

實例分析INDIRECT函數

示例 3. 智能表下拉列表

有時 Microsoft Excel 不會將智能表名稱和列視為完整鏈接。 因此,例如,當嘗試創建下拉列表(選項卡 數據——數據驗證) 基於列 員工 從智能表 員工 我們會得到一個錯誤:

實例分析INDIRECT函數

如果我們用我們的函數“包裝”鏈接 間接, 那麼 Excel 將很容易接受它並且我們的下拉列表將在將新員工添加到智能表的末尾時動態更新:

實例分析INDIRECT函數

示例 4. 牢不可破的鏈接

如您所知,在工作表上插入或刪除行列時,Excel 會自動更正公式中的引用地址。 在大多數情況下,這是正確且方便的,但並非總是如此。 假設我們需要將員工目錄中的姓名傳輸到報告中:

實例分析INDIRECT函數

如果你放常規鏈接(在第一個綠色單元格中輸入=B2並將其複制下來),那麼當你刪除時,例如Dasha,我們將得到#LINK! 與她對應的綠色單元格中的錯誤。 (#REF!)。 在使用函數創建鏈接的情況下 間接 不會有這樣的問題。

示例 5:從多個工作表中收集數據

假設我們有 5 張表格,其中包含來自不同員工(Mikhail、Elena、Ivan、Sergey、Dmitry)的相同類型的報告:

實例分析INDIRECT函數

讓我們假設所有表格中貨物和月份的形狀、大小、位置和順序都相同——只是數字不同。

您可以只用一個公式從所有工作表中收集數據(不要總結,而是將它們放在一個“堆”中):

實例分析INDIRECT函數

如您所見,想法是相同的:我們將鏈接粘貼到給定工作表的所需單元格,然後 間接 把它變成“現場”。 為方便起見,在表格上方,我添加了列的字母(B、C、D),並在右側添加了需要從每張表中獲取的行號。

陷阱

如果您使用的是 間接 (間接) 你需要記住它的弱點:

  • 如果您鏈接到另一個文件(通過在方括號中粘貼文件名、工作表名稱和單元格地址),則它僅在原始文件打開時才有效。 如果我們關閉它,我們會收到錯誤 #LINK!
  • INDIRECT 不能引用動態命名範圍。 在靜態 - 沒問題。
  • INDIRECT 是一個易失或“易失”的函數,即,它會針對工作表的任何單元格中的任何變化進行重新計算,而不僅僅是影響單元格,就像在正常函數中那樣。 這對性能有不好的影響,最好不要被大型 INDIRECT 表沖昏頭腦。

  • 如何使用自動調整大小創建動態範圍
  • 使用 OFFSET 函數對工作表上的範圍窗口求和

 

發表評論