位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

INDIRECT函數(shù)的語法及使用

提問人:周麗平發(fā)布時間:2021-08-19

INDIRECT函數(shù)返回由文本字符串指定的引用。

image.png

什么情況下使用INDIRECT函數(shù)?

INDIRECT函數(shù)返回文本字符串指定的引用,可以用于:創(chuàng)建開始部分固定的引用;創(chuàng)建對靜態(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ù)是易失的,因此如果在許多公式中使用,它會使工作簿變慢。

如果INDIRECT函數(shù)創(chuàng)建對另一個工作簿的引用,那么該工作簿必須打開,否則公式的結(jié)果為#REF!錯誤。

如果INDIRECT函數(shù)創(chuàng)建所限制的行和列之外的區(qū)域的引用,公式將出現(xiàn)#REF!錯誤。(Excel 2007和Excel 2010)

INDIRECT函數(shù)不能對動態(tài)命名區(qū)域進(jìn)行引用

示例1:創(chuàng)建開始部分固定的引用

在第一個示例中,列C和列E有相同的數(shù)字,使用SUM函數(shù)求得的和也是相同的。然而,所使用的公式稍微有點不同。在單元格C8中,公式為:

=SUM(C2:C7)

在單元格E8中,INDIRECT函數(shù)創(chuàng)建對開始單元格E2的引用:

=SUM(INDIRECT(“E2″):E7)

image.png

如果在列表的頂部插入一行,例如輸入January的數(shù)量,列C中的和不會改變,但公式發(fā)生了變化,根據(jù)被插入的行進(jìn)行了調(diào)整:

=SUM(C3:C8)

然而,INDIRECT函數(shù)鎖定開始單元格為E2,因此January的數(shù)量被自動包括在E列的匯總單元格中。結(jié)束單元格改變,但是開始單元格沒有受影響。

=SUM(INDIRECT(“E2″):E8)

image.png

示例2:創(chuàng)建對靜態(tài)命名區(qū)域的引用

INDIRECT函數(shù)也可以創(chuàng)建對命名區(qū)域的引用。在本例中,藍(lán)色單元格區(qū)域被命名為NumList,在列B中也有一個基于該列的數(shù)值數(shù)的動態(tài)區(qū)域。

通過在SUM函數(shù)中使用區(qū)域名稱,每個單元格都能夠計算總和,正如在單元格E3和E4中所看到的。

=SUM(NumList) 或 =SUM(NumListDyn)

image.png

代替在SUM公式中輸入名稱,可以指向工作表單元格區(qū)域名稱。例如,使用在單元格D7中顯示的名稱NumList,單元格E7中的公式是:

=SUM(INDIRECT(D7))

不巧的是,INDIRECT函數(shù)不能夠解決對動態(tài)區(qū)域的引用,因此當(dāng)公式向下復(fù)制到單元格E8中時,結(jié)果顯示#REF!錯誤。

image.png

示例3:從工作表、行、列信息創(chuàng)建引用

在INDIRECT函數(shù)中使用FALSE作為第二個參數(shù)容易創(chuàng)建基于行號和列號的引用。在本例中,創(chuàng)建R1C1樣式的引用,還包括了工作表名 — ‘MyLinks’!R2C2。

=INDIRECT(“’” & B3 & “’!R” & C3 & “C” & D3,FALSE)

image.png

示例4:創(chuàng)建固定的數(shù)值組

在一些公式中,需要一組數(shù)值,正如本例所示,我們想求列B中最大的3個數(shù)值的平均值。在公式中,可以輸入數(shù)值,如單元格D4中所示:

=AVERAGE(LARGE(B1:B8,{1,2,3}))

如果需要更多的一組數(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個公式的結(jié)果相同。

image.png

然而,如果在工作表的頂部插入行,第二個公式返回不正確的結(jié)果,因為行數(shù)被調(diào)整了?,F(xiàn)在,顯示了第3、第4、第5個最大數(shù)值的平均值,而不是求最大的3個數(shù)值的平均值。

使用INDIRECT函數(shù),第3個公式保持正確的行引用,并繼續(xù)顯示正確的結(jié)果。

image.png


繼續(xù)查找其他問題的答案?

回復(fù)(0)
返回頂部