Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。 Excel的INDIRECT函數很強大,但卻是最抽象、最難懂的?不存在的,只要記住這一句公式口訣,就可以很清楚的了解這個函數的工作原理,我相信小伙伴們看了這篇函數的介紹,不會再迷惑。 ◆函數的大概功能介紹(只包含了一部分)
▍ 一、INDIRECT函數參數介紹: 它是間接引用函數,原公式參數2個:INDIRECT(引用的單元格,單元格樣式類型)。注意:第二參數可不寫,以后直接寫成 INDIRECT(引用的單元格),一個參數就夠了。原因如下: 單元格樣式類型有兩種,第二參數輸入1就是選擇A1單元格樣式;輸入0就是選擇R1C1單元格樣式。如圖1-1:選中A1單元格,左上角會顯示A1,這就是 A1單元格樣式(幾乎都用這種);而如果是R1C1樣式,則選中A1單元格,左上角會顯示R1C1(幾乎不用,因為很不直觀)。在函數公式里,最后一個參數是1的話可以省略不寫的,所以我們以后都默認第二參數是1,就省略不寫了,只寫第一參數就可以了。 圖1-1,A1單元格樣式 ▍ 二、INDIRECT函數基礎案例介紹: INDIRECT函數之所以會把人繞暈,是因為這個函數功能是間接引用地址的內容(單元格如A1、C5就是地址;除此之外,工作表名稱和工作簿名稱也可以作為這個函數的地址)。 ▼ 案例1,如圖2-1:A1單元格內容為 一月,B1單元格內容為A1。在B3單元格里輸入=INDIRECT(B1),結果顯示“一月”,而不是A1。這就是INDIRECT函數的間接引用功能。 =INDIRECT(B1),默念公式口訣:引用B1單元格里A1地址的內容,A1地址的內容是“一月”,所以結果是“一月”。 圖2-1 ▼ 案例2,如圖2-2:B5單元格內容為100,D2單元格內容為B5,E4單元格輸入公式=INDIRECT(D2),默念口訣:引用D2單元格里B5地址的內容,B5地址的內容是100,所以結果為100。 圖2-2 ▼ 案例3,如圖2-3:E4單元格輸入公式=INDIRECT(“D2”),因為公式里給單元格加上了雙引號,則口訣失效,表示直接引用D2單元格里的內容,結果顯示B5。當函數參數是文本時,如=INDIRECT(“一月”),因為一月是文本,所以參數要加雙引號,不然公式會錯誤。 注意:函數E4=INDIRECT("D2")表示永遠只識別D2單元格里的內容,如果因為插入行D2變成D3,那它也不會識別D3,而是繼續識別新D2單元格里的內容,這是和E4=D2不一樣的地方,可以自己插入行插入列試試。 圖2-3 如果這個還不理解的小伙伴只能再多看幾遍,因為后面的跨工作簿引用,跨工作表引用,多張表格內容匯總為一張表格,都會用到這個函數的地址引用功能。 ▍ 三、跨工作簿或跨工作表,將多張表格內容匯總為一張表格: ▼ 案例1,跨工作表多表匯總,如圖3-1:將一月、二月、三月這三張表的數據全部匯總到一張匯總表上。這三張A列框選出來的名字順序必須要一模一樣,所以要求前期做表的時候要規范,要有規律,這樣才方便函數引用(其中三月的A7單元格多一個名字,這個在后面的“備注”段落里有解釋)。 圖3-1 3-1、我們在“三月”表格后面新建一張表格,叫匯總表。在A列輸入名字,在第1行輸入一月,二月,三月。如圖3-2: 圖3-2 備注:匯總表的A列姓名順序一定要和前面的幾張表格一模一樣。我們這里選擇復制“三月”表格里的姓名,因為“三月”表格A7單元格多了一個姓名,A1到A6是一模一樣的,所以選擇“三月”表格的姓名列不會出現少統計一個人的情況。只要有一張表格A1到A6的人名順序不一樣,引用數據就會不準確,必須重新整理好姓名順序。 3-2、現在開始在匯總表輸入INDIRECT函數公式,將多張表的內容匯總到一張表上。初次使用這個函數很可能會書寫錯誤,這里我們分步講解,利用錯誤的公式,修改為正確公式,避免以后進入誤區。 〓分步講解-1:如動圖3-3,在匯總表的B2單元格里輸入=INDIRECT(一月!B2),結果是錯誤的。因為(一月!B2)括號里的內容是屬于文本型內容,在函數公式里出現文本都要加雙引號,B2單元格里的公式應該改成=INDIRECT("一月!B2")。"一月!B2"的意思是直接引用一月表格B2地址的內容。除了單元格,工作簿名稱和工作表名稱也是可以成為地址的,這個寫法要記住。 圖3-3:INDIRECT函數錯誤寫法 〓分步講解-2:如圖3-4,加了引號,公式正確了,=INDIRECT("一月!B2")也顯示結果101了,但是為什么向下,向右填充引用失敗,內容不會變? 圖3-4:函數不準確,引用失敗 〓分步講解-3:上面的這條函數還要繼續修改,因為函數=INDIRECT("一月!B2")的"一月!B2"是文本,文本是不會變的,而單元格會隨著拖動變動數字,所以要把函數的文本替換成單元格,這就要用到INDIRECT函數的地址引用功能。如圖3-5: 圖3-5:函數替換步驟詳解 =INDIRECT(B$1&"!B"&ROW())這個函數向右拖動就會變成=INDIRECT(C$1&"!B"&ROW()),因為C1單元格的內容是“二月”,二月也是工作表名稱,工作表名稱也是地址,所以默念口訣:引用C1單元格里二月B列第ROW行地址的內容。 ROW()函數很簡單,簡單介紹下:在任意單元格輸入=ROW(A5),結果會顯示5,表示第5行;=ROW(B5),結果也是顯示5,所以ROW函數只顯示行數,跟A列還是B列沒有關系。如果括號里沒有參數,比如你在D13單元格里輸入=ROW() ,則結果顯示13,表示輸入公式的當前單元格所在行數。ROW函數還可以進行加減乘除四則運算,如任意單元格輸入=ROW(A6)-2,結果為4。ROW(A6)/2,結果為3。 INDIRECT多表匯總引用正確動圖展示: 圖3-6:INDIRECT多表匯總正確案例 ▼ 案例2,跨工作簿多表匯總。在工作簿“表2”里新建匯總表,把表1工作簿的一月、二月、三月內容引用過來。如圖3-7: 圖3-7:跨工作簿匯總引用 因為跨表、跨工作簿的函數公式比較長,容易寫錯,建議大家先把錯誤的公式弄出來,再在錯誤的公式里修改。如動圖3-8: 圖3-8:INDIRECT函數跨工作簿多表匯總 公式解析圖3-9:在B3單元格里輸入=INDIRECT("[表1.xlsx]"&B$2&"!B"&ROW()-1)。這里用ROW()-1是因為這張表格的數據是從B3單元格開始,而表1工作簿的一月表格它們數據都是從B2開始,所以在B3單元格輸入ROW()-1就是3-1=2的意思,等于錯行引用上一行數據,B3引用B2數據,B4引用B3數據。 圖3-9:公式解析圖 ▍ 四、INDIRECT函數經典功能:制作二級下拉菜單,或者更多級下拉菜單。這里做一個四級下拉菜單的案例,二級下拉菜單都是一樣的操作方法。根據A1:D7的信息,整理出一份如圖3-10的格式表格。 圖4-1,整理菜單的上下級 ▼第一級菜單制作,選中A9:A13,點擊“數據”菜單—選“數據驗證或數據有效性”—選設置里的“序列”—區域選G1:H1,確定,一級菜單做好了。如圖3-11: 圖4-2:第一級菜單制作步驟 ▼區域定義名稱,在制作二級及二級以上下拉菜單的時候,就要先對某些區域定義名稱。選中G1:H2,點“公式”菜單的“根據所選內容創建”,選首行,點確定,就會浙江省和江蘇省建立一個包含地級市的文件夾。選中G4:H7,因為有空單元格,所以按F5,定位選“常量”,就會不選中空單元格,也接著一樣的操作。選H9::H12也是如此操作,建立名稱。在“公式”菜單的“名稱管理器”里能看到剛剛新建的五個文件夾。如圖3-12: 圖4-3:區域定義名稱 ▼制作二級或多級下拉菜單。選中B9:B13,點“數據”菜單—“數據驗證或數據有效性”—設置的“序列”—在區域里輸入=INDIRECT(A9),點確定,如果出現錯誤提示框,點“是”。選中C9:C13,一樣操作,就是在區域框里輸入=INDIRECT(B9)。選中D9:D13,一樣操作,在區域框里輸入=INDIRECT(C9)。這樣四級菜單就設置完成了。如圖3-13 圖4-4:制作二級及多級下拉菜單 以上是INDIRECT函數的兩種用法,一種是跨工作簿、跨工作表多表匯總,另一種就是制作二級及多級下拉菜單。因為篇幅原因,后續再發布一篇關于INDIRECT函數和INDEX、MATCH、VLOOKUP、SUMIF等各種函數組合使用的案例文章。 Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。 |
溫馨提示:喜歡本站的話,請收藏一下本站!