函數INDIRECT用于返回由文本字符串指定的引用。應用此函數,將立即對引用進行計算,并顯示其內容。該函數在需要更改公式中單元格的引用,而不更改公式本身時常常被用到,其表達式為:
INDIRECT(ref_text,a1)
參數ref_text為單元格的引用;參數a1用于設置引用的類型,包括A1樣式(取值為TRUE或省略)和R1C1樣式(取值為FALSE)兩種。
●如果ref_text不是合法的單元格引用,函數返回錯誤值#REF!。
●如果ref_text是對另一個工作簿的引用(外部引用),則被引用的那個工作簿必須處于打開狀態。如果該工作簿沒有打開,函數將返回錯誤值#REF!。
實例如下:
某班級要查找某次考試中數學成績最好的三位同學。
1.在表格內輸入考試的成績表,在單元格E1內輸入公式“=INDIRECT("A"&MATCH(MAX($C$2:$C$10),$C$2:$C$10,0)+1)”,接Enter 鍵得到成績最高的學生名字,如圖所示
此公式進行的步驟如下:
①利用MAX函數求取考試中的最高成績。
②利用MATCH函數找到該成績在列標中的位置,由于最上方還包含一個存儲名稱的行,因此其所在的行號就是位置的數字+1。
③利用INDIRECT函數求得該行中A列的值,假如②的結果為3,則該成績位于4行,這里就要返回單元格A4內的姓名。
2.在單元格E2內輸入公式“=INDIRECT("A"&MATCH(LARGE($C$2:$C$10,2),$C$2:$C$10,0)+1)”,按Enter鍵得到第二名的學生。這里和上一步不同的就是利用LARGE函數取得第二名的成績值。
3.利用公式“=INDIRECT("A"&MATCH(LARGE($C$2:$C$10,3),$C$2:$C$10,0)+1)”取得第三名的學生名字