間接函式是一種通用功能,但經常被低估,其魔力就在於此它允許在乙個單元格中指示 Excel 以獲取其他單元格的值,這意味著您可以通過變數引數靈活引用單元格,相當於加到函式公式中次級列新增幾何問題指南。這種強大的間接引用該功能使間接功能易於靈活地實現跨表引用和動態引用用於高效的資料處理和計算。
但因為其間接參照特性,也讓剛開始學習間接函式的同學感到有些腦力燒腦,就像中學學幾何和概率一樣,有點曲折。
本文將通過分享許多示例、其用法和技巧來詳細分析直接函式,希望對您了解和使用直接函式有所幫助。
間接函式的基本語法:=indirect(對單元格的引用,指定對單元格的引用的樣式)。
第乙個引數是對要引用的單元格的引用;
第二個引數是指定單元格引用的樣式,A1 樣式或 R1C1 樣式,預設為 A1 樣式。
一、基本用法
間接函式支援常量和可變引數常量引數直接引用內容,而變數引數然後通過間接引用位址。
如下圖所示,indirect(a2)、indirect("a1") 和 indirect("a"&1)所有三個公式的結果都是單元格 A1 的值"名字"。
indirect(a2),通過單元格 A1 的值指向單元格 A2 的值;
indirect("a1") 和 indirect("a"&1),"a1","a"&1 是乙個常量引數,它直接引用單元格 A1 的值。
2. 一列到多列
Direct 可以通過組合行和列函式,將單列的資料轉換為多行多列。
如下圖所示,將 A 列的 6 個資料轉換為 3 列 2 行的資料,並在單元格 B2 中輸入 =indirect("a"& row() 1) *3 + column()-1),然後根據要轉換的行數和列數填寫公式,數字 3 可以修改為要轉換的列數。
row() 1) *3 + column()-1 表示數字 1、2、3、4、5、6。
3. 跨表查詢
由於 Direct 的間接引用功能使得跨表查詢非常方便,因此初學者可能沒有意識到此功能的重要性。
如下圖所示,需要查詢"張國"對於 3 個工作表的工資,請在單元格 C2 中輸入公式並填寫:
vlookup($a$2,indirect(b2&"!a:b"),2,0)。
此查詢公式的便利性由您決定無需跨表來選擇查詢區域,間接函式可以引用是通過 b 列中的變數實現的
indirect(b2&"!a:b"該公式等效於:'一月'!a:b;
如果工作表名稱中有空格或其他特殊字元,則需要再新增兩個"'",即:間接("'"&b2&"'!a:b"這個公式有點複雜,但更直觀;
間接函式也可以跨工作簿引用,但引用的工作簿需要開啟;
為了便於演示,請放置工作表"一月"、"二月"、"三月"一起擷取主表的螢幕截圖。
第四,總和是跨表找到的
direct 和 sum 函式的組合使得跨表求和變得容易。
如下圖所示,您需要找到每個月的總工資,在單元格 b2 中輸入公式並填寫: =sum(indirect(a2&"!b:b"))。
您還可以使用 r1c1 模式:c2=sum(indirect(a2&"!c[-1]",))第二個引數是:"0"不過可以省略","它不能省略。
5. 合併多個表中的資料
間接函式和行函式可以快速合併多個**資料,如下圖所示,需要將每個月的資料合併到彙總表中,在單元格b2中輸入公式,從右到下填寫:=indirect(b$1&"!b"&row())
因為要向下填充公式,b$1 意味著需要鎖定第一行。
6. 動態求和
如下圖所示,您需要根據 d2 中的月數找到當年的累計工資金額,並在單元格 e2 中輸入公式 =sum(indirect()"b2:b"&match(d2,a:a,0)))
match(d2,a:a,0) 根據單元格 D2 中的月數查詢 A 列中的行數。
7. 動態匹配資料
有時在進行會計分錄時,借款人和借款人的數字需要匹配,如下圖所示,B列中的數字根據A列中數字的錯位進行匹配,在單元格B1中輸入公式並填寫公式:=if(a2<>"","",if(row()>2*counta(a:a)-1,"",indirect("a"&row()-counta(a:a)+1)))
if(a2<>"","",公式),當列 A 資料不等於空時,列 B 對應的單元格資料為空;
if(row()>2*counta(a:a)-1,"",公式),當B列單元格對應的行數大於A列資料的2倍時,B列單元格的資料為空;
indirect("a"&row()-counta(a:a)+1),當b列單元格對應的行數大於a列資料的1倍且小於2倍時,取a列中的數字;
B列中的資料根據A列中的資料量動態匹配;
通過公式獲得完全冗餘和無錯誤的資料是製作自動化報告和模板的最重要步驟之一。
8. 製作下拉選單
1.若要為源資料區域建立名稱,請選擇“資料區域 D1:E7”,然後選擇“公式 - 從所選內容建立”,在彈出的對話方塊中選擇“第一行”,在下拉選單中設定源資料的名稱管理。
2.設定下拉選單,選擇單元格B2,選擇“資料”-資料驗證,在彈出的對話方塊中,選擇“序列”,在**列中輸入公式=indirect(A2)。
9. 圖表的動態選擇
如下圖所示,您可以根據 C2 單元格選擇要渲染的圖表型別。
1.定義名稱,通過【公式】選項卡下的【名稱管理器】功能設定圖表區域的圖表名稱,依次選擇4個圖表的資料區域,將名稱設定為柱形圖、折線圖、餅圖和圖表。
2.複製區域,選擇任何圖表的區域,然後有選擇地將鏈結複製並貼上到要渲染的位置;
3.定義所選圖表型別單元格的名稱,並通過名稱管理器建立乙個新名稱,名稱為"圖表選擇",參考位置:=indirect($c$2),c2 對應於要選擇的單元格 **。
4.設定下拉選單,在單元格 C2 中設定下拉選單,序列為步驟 1 中定義的名稱:柱形圖、折線圖、餅圖和圖表。
5.設定圖表公式,如下圖所示,點選圖表,將編輯欄中的公式修改為:=圖表選擇。 然後,您可以選擇要通過 C2 單元格呈現的型別。
在實踐中,建議將呈現的報告和源圖表儲存在不同的**中。
間接函式的強大功能使其成為 Excel 不可或缺的一部分,它使我們能夠以動態方式引用其他單元格,甚至可以跨不同的工作表引用資料。 間接函式也是我的最愛之一,尤其是它的跨表引用和動態引用該功能在製作自動化報告和模板方面發揮了意想不到的作用,希望本文的分享能為大家帶來更多使用間接功能的可能性。
希望這篇文章對大家有所幫助,歡迎關注留言,本號將持續分享更多優質的excel知識。