文:傲看今朝 一、什么是Indirect函數(shù)?Indirect函數(shù)稱之為間接引用函數(shù),間接引用當然是直接引用而言的。直接引用非常簡單,我在任意一個單元格輸入公式:“=a1”,那么將得到A1單元格的值。而間接引用則完全不同。如果我想通過間接引用函數(shù)返回a1單元格的值,我輸入的公式為:=indirect('a1',1),這樣才能得到A1的值。那么間接引用的優(yōu)勢是是什么呢?文章開頭我已經(jīng)說了答案了,那就是非常靈活,大家注意到indirect函數(shù)的參數(shù)加了引號,表示是文本。既然是文本,我們就可以靈活地編輯引用地址。這一點是直接引用做不到的。下面簡單來看一下這個函數(shù)吧: indirect函數(shù) 例如:在下圖中,我們輸入“=indirect('d1')”,公式將會直接計算d1單元格的值,也就是a1;而如果我們輸入“=indirect(d1)”,公式將直接引用D1單元格的內容“a1”,然后再返回'a1'單元格的值,最后得到的結果就是“indirect函數(shù)”(簡單來說計算了2次,第一次:由“=indirect(d1)”得到“=indirect('a1')”;第二次:由“=indirect('a1')”得到最終的值“indirect函數(shù)”) indirect函數(shù)案例 indirect函數(shù)如此靈活,在工作中我們如何去應用,下面我們先來看一個簡單案例。 二、利用Indirect函數(shù)跨表統(tǒng)計工資如下圖所示,如何匯總不同sheet中的工資總額匯總到下表中呢?2010年到2012年三個sheet中的表格結構完全一樣,如下圖中右下角表格所示。 源數(shù)據(jù) 很多同學可能會想到把這三張表全部復制粘貼到一個sheet里在進行統(tǒng)計,然而在sheet很多的情況下,通過這樣的辦法效率實在是太低。毫不夸張地說,你有可能花上一個小時都干不完的活,Excel高手一條公式一分鐘都要不了就搞定了。下面我們來看看利用Indirect函數(shù)來做。 思路:首先得到每個sheet的B列,然后外層嵌套一個sum函數(shù)求和即可得到每年的匯總了。公式如下:
向下拖拽公式,輕松完成個sheet的統(tǒng)計。 indirect函數(shù),直接引用a12得到sheet的名稱,使用“&”鏈接上“!b:b”,引用的是X表格B列的區(qū)域,外加一個sum函數(shù)即可匯總每年的銷售總額。 三、利用indirect函數(shù)快速做數(shù)據(jù)表轉置還是先來看看咱們的需求,如何將左側表格快速轉化右側表格的樣式呢?方法有很多,包括利用咱們之前介紹過的index函數(shù)都可以輕松做出來,下面我們來介紹如何利用Indirect函數(shù)來做。 從左邊的樣式到右邊的樣式 思路: 1.要得到右側的表格的樣式,我希望將左側表格的每一個單元格名稱直接放在右側表中,如下圖所示: 首先我們想辦法得到這樣的引用樣式 如何得到這樣的樣式呢?由于我們是由一列變成多行多列,因此列號不變,都是A,唯一變的是行號。我們要思考的是當我們向右填充公式時,行號能夠從左向右依次增大(1,2,3,4……),向下填充公式時,行號能夠以等差數(shù)列的方式增大(0,4,8,12)?針對第一個需求,我們可以用公式“=column(a1)”來做,針對第二個需求,我們可以用這樣一個公式“=(row(a1)-1)*4”來實現(xiàn),因此要得到上圖中的地址,我們可以利用如下的公式得到:
2.在我們得到單元格地址外層嵌套一個indirect函數(shù)即可得到咱們右側圖表的樣式了。最終公式為:
一條公式搞定 輕松搞定了一列變多列的數(shù)據(jù)轉置了吧? 四、利用Indirect函數(shù)做多表數(shù)據(jù)條件匯總如下圖所示,如何快速統(tǒng)計:2010年到2012年這三年中,業(yè)績超過150萬的人數(shù)? 每個sheet的表格結構都和上圖右下角的一致 思路: 首先利用indirect函數(shù)得到所有sheetB列的數(shù)據(jù),下一步利用countif函數(shù)進行人數(shù)統(tǒng)計就可以了。 1.這個引用唯一的變量是表格(年份數(shù)字是變量)名稱,我們可以利用函數(shù)row得到:=row(2010:2012)。因此我們的indirect函數(shù)可以這樣寫:
2.接下來就簡單了,在完成嵌套一個countif函數(shù)就可以完成條件計數(shù)的匯總了。最終公式如下:
|
|