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