本文來源于www.contextures.com,由完美Excel翻譯,稍有補(bǔ)充和修改,特輯錄于此,分享與大家共同學(xué)習(xí)。
微信公眾賬號(hào):excelperfect
什么情況下使用INDIRECT函數(shù)?
INDIRECT函數(shù)返回由文本字符串指定的引用,可以用于:
創(chuàng)建開始部分固定的引用
創(chuàng)建對(duì)靜態(tài)命名區(qū)域的引用
從工作表、行、列信息創(chuàng)建引用
創(chuàng)建固定的數(shù)值組
INDIRECT函數(shù)語法
INDIRECT函數(shù)的語法如下:
INDIRECT(ref_text,a1)
ref_text是代表引用的文本字符串
如果a1為TRUE或者忽略,使用A1引用樣式;如果為FALSE,使用R1C1引用樣式
INDIRECT陷阱
INDIRECT函數(shù)是易失的,因此如果在許多公式中使用,那么它會(huì)使工作簿變慢。
如果INDIRECT函數(shù)創(chuàng)建對(duì)另一個(gè)工作簿的引用,那么該工作簿必須打開,否則公式的結(jié)果為#REF!錯(cuò)誤。
如果INDIRECT函數(shù)創(chuàng)建所限制的行和列之外的區(qū)域的引用,那么公式將出現(xiàn)#REF!錯(cuò)誤。(Excel 2007和Excel 2010)
INDIRECT函數(shù)不能對(duì)動(dòng)態(tài)命名區(qū)域進(jìn)行引用。
示例1:創(chuàng)建開始部分固定的引用
在第一個(gè)示例中,列C和列E有相同的數(shù)字,使用SUM函數(shù)求得的和也是相同的。然而,所使用的公式稍微有點(diǎn)不同。在單元格C8中,公式為:
=SUM(C2:C7)
在單元格E8中,INDIRECT函數(shù)創(chuàng)建對(duì)開始單元格E2的引用:
=SUM(INDIRECT('E2'):E7)
如果在列表的頂部插入一行,例如輸入January的數(shù)量,列C中的和不會(huì)改變,但公式發(fā)生了變化,根據(jù)被插入的行進(jìn)行了調(diào)整:
=SUM(C3:C8)
然而,INDIRECT函數(shù)鎖定開始單元格為E2,因此在E列的匯總單元格中會(huì)自動(dòng)包括January的數(shù)量。結(jié)尾單元格改變了,但是開始單元格沒有受影響。
=SUM(INDIRECT('E2'):E8)
示例2:創(chuàng)建對(duì)靜態(tài)命名區(qū)域的引用
INDIRECT函數(shù)也可以創(chuàng)建對(duì)命名區(qū)域的引用。在本例中,藍(lán)色單元格區(qū)域被命名為NumList,在列B中也有一個(gè)基于該列的數(shù)值數(shù)的動(dòng)態(tài)區(qū)域。
通過在SUM函數(shù)中使用區(qū)域名稱,每個(gè)單元格都能夠計(jì)算總和,正如在單元格E3和E4中所看到的。
=SUM(NumList)或 =SUM(NumListDyn)
代替在SUM公式中輸入名稱,可以指向工作表單元格區(qū)域名稱。例如,使用在單元格D7中顯示的名稱NumList,單元格E7中的公式是:
=SUM(INDIRECT(D7))
不巧的是,INDIRECT函數(shù)不能夠解決對(duì)動(dòng)態(tài)區(qū)域的引用,因此當(dāng)公式向下復(fù)制到單元格E8中時(shí),結(jié)果顯示#REF!錯(cuò)誤。
示例3:從工作表、行、列信息創(chuàng)建引用
在INDIRECT函數(shù)中使用FALSE作為第二個(gè)參數(shù)容易創(chuàng)建基于行號(hào)和列號(hào)的引用。在本例中,創(chuàng)建R1C1樣式的引用,還包括了工作表名 — ‘MyLinks’!R2C2。
=INDIRECT('’'& B3 & '’!R' & C3 & 'C' & D3,FALSE)
示例4:創(chuàng)建固定的數(shù)值組
在一些公式中,需要一組數(shù)值,正如本例所示,我們想求列B中最大的3個(gè)數(shù)值的平均值。在公式中,可以輸入數(shù)值,如單元格D4中所示:
=AVERAGE(LARGE(B1:B8,{1,2,3}))
如果需要更多的一組數(shù)值,那么可能不想輸入這些數(shù)值。此時(shí),可以使用ROW函數(shù),如在單元格D5中使用的數(shù)組公式:
=AVERAGE(LARGE(B1:B8,ROW(1:3)))
還可以將ROW函數(shù)和INDIRECT函數(shù)聯(lián)合使用,也是數(shù)組公式:
=AVERAGE(LARGE(B1:B8,ROW(INDIRECT('1:3'))))
上述3個(gè)公式的結(jié)果相同。
然而,如果在工作表的頂部插入行,第二個(gè)公式返回不正確的結(jié)果,因?yàn)樾袛?shù)被調(diào)整了。現(xiàn)在,顯示了第3、第4、第5個(gè)最大數(shù)值的平均值,而不是求最大的3個(gè)數(shù)值的平均值。
使用INDIRECT函數(shù),第3個(gè)公式保持正確的行引用,并繼續(xù)顯示正確的結(jié)果。
如果您對(duì)本文介紹的內(nèi)容有什么建議或好的示例,歡迎發(fā)送郵件給我:xhdsxfjy@163.com。
您也可以在本文下發(fā)表留言,留下您的足跡。
轉(zhuǎn)載本文請(qǐng)聯(lián)系我或者注明出處。
聯(lián)系客服