Excel高手必備的最爲靈活實用的引用函數:Indirect

Excel高手必備的最為靈活實用的引用函數:Indirect

文:傲看今朝

會不會Indirect函數可以稱之為Excel大神與Excel小白之間最為明顯的分界點。小白用戶能夠會用Indirect函數的屈指可數,而大神可以說人人都會這個函數。這個究竟有什麼魔力,讓Excel大神趨之若鶩呢?答案就是indirect函數極其靈活。今天我來給大家分享一下Indirect的實用用法,讓大家也能秒變“Excel大神”。

一、什麼是Indirect函數?

Indirect函數稱之為間接引用函數,間接引用當然是直接引用而言的。直接引用非常簡單,我在任意一個單元格輸入公式:“=a1”,那麼將得到A1單元格的值。而間接引用則完全不同。如果我想通過間接引用函數返回a1單元格的值,我輸入的公式為:=indirect("a1",1),這樣才能得到A1的值。那麼間接引用的優勢是是什麼呢?文章開頭我已經說了答案了,那就是非常靈活,大家注意到indirect函數的參數加了引號,表示是文本。既然是文本,我們就可以靈活地編輯引用地址。這一點是直接引用做不到的。下面簡單來看一下這個函數吧:

Excel高手必備的最為靈活實用的引用函數:Indirect

indirect函數

例如:在下圖中,我們輸入“=indirect("d1")”,公式將會直接計算d1單元格的值,也就是a1;而如果我們輸入“=indirect(d1)”,公式將直接引用D1單元格的內容“a1”,然後再返回"a1"單元格的值,最後得到的結果就是“indirect函數”(簡單來說計算了2次,第一次:由“=indirect(d1)”得到“=indirect("a1")”;第二次:由“=indirect("a1")”得到最終的值“indirect函數”)

Excel高手必備的最為靈活實用的引用函數:Indirect

indirect函數案例

indirect函數如此靈活,在工作中我們如何去應用,下面我們先來看一個簡單案例。

二、利用Indirect函數跨表統計工資

如下圖所示,如何彙總不同sheet中的工資總額彙總到下表中呢?2010年到2012年三個sheet中的表格結構完全一樣,如下圖中右下角表格所示。

Excel高手必備的最為靈活實用的引用函數:Indirect

源數據

很多同學可能會想到把這三張表全部複製粘貼到一個sheet裡在進行統計,然而在sheet很多的情況下,通過這樣的辦法效率實在是太低。毫不誇張地說,你有可能花上一個小時都幹不完的活,Excel高手一條公式一分鐘都要不了就搞定了。下面我們來看看利用Indirect函數來做。

思路:首先得到每個sheet的B列,然後外層嵌套一個sum函數求和即可得到每年的彙總了。公式如下:

=SUM(INDIRECT(A12&"!B:B"))

向下拖拽公式,輕鬆完成個sheet的統計。

indirect函數,直接引用a12得到sheet的名稱,使用“&”鏈接上“!b:b”,引用的是X表格B列的區域,外加一個sum函數即可彙總每年的銷售總額。

三、利用indirect函數快速做數據錶轉置

還是先來看看咱們的需求,如何將左側表格快速轉化右側表格的樣式呢?方法有很多,包括利用咱們之前介紹過的index函數都可以輕鬆做出來,下面我們來介紹如何利用Indirect函數來做。

Excel高手必備的最為靈活實用的引用函數:Indirect

從左邊的樣式到右邊的樣式

思路:

1.要得到右側的表格的樣式,我希望將左側表格的每一個單元格名稱直接放在右側表中,如下圖所示:

Excel高手必備的最為靈活實用的引用函數:Indirect

首先我們想辦法得到這樣的引用樣式

如何得到這樣的樣式呢?由於我們是由一列變成多行多列,因此列號不變,都是A,唯一變的是行號。我們要思考的是當我們向右填充公式時,行號能夠從左向右依次增大(1,2,3,4……),向下填充公式時,行號能夠以等差數列的方式增大(0,4,8,12)?針對第一個需求,我們可以用公式“=column(a1)”來做,針對第二個需求,我們可以用這樣一個公式“=(row(a1)-1)*4”來實現,因此要得到上圖中的地址,我們可以利用如下的公式得到:

="A"&33+column(a1)+(row(a1)-1)*4

2.在我們得到單元格地址外層嵌套一個indirect函數即可得到咱們右側圖表的樣式了。最終公式為:

=indirect(="A"&33+column(a1)+(row(a1)-1)*4)

Excel高手必備的最為靈活實用的引用函數:Indirect

一條公式搞定

輕鬆搞定了一列變多列的數據轉置了吧?

四、利用Indirect函數做多表數據條件彙總

如下圖所示,如何快速統計:2010年到2012年這三年中,業績超過150萬的人數?

Excel高手必備的最為靈活實用的引用函數:Indirect

每個sheet的表格結構都和上圖右下角的一致

思路:

首先利用indirect函數得到所有sheetB列的數據,下一步利用countif函數進行人數統計就可以了。

1.這個引用唯一的變量是表格(年份數字是變量)名稱,我們可以利用函數row得到:=row(2010:2012)。因此我們的indirect函數可以這樣寫:

=indirect(row(2010:2012)&"年!b:b")

2.接下來就簡單了,在完成嵌套一個countif函數就可以完成條件計數的彙總了。最終公式如下:

{=COUNTIF(INDIRECT(ROW(2010:2012)&"年!b:b"),">150")}

今天的Indirect函數就介紹到這裡,更多精彩內容,請關注:傲看今朝


分享到:


相關文章: