Excel表格INDIRECT函數的妙用
介紹
返回由文本字符串指定的引用。此函數立即對引用進行計算,并顯示其內容。
語法
INDIRECT(ref_text, [a1])
參數
Ref_text ?必需。對單元格的引用。
a1 可選。一個邏輯值,用于指定包含在單元格 ref_text 中的引用的類型。
- 如果 a1為 TRUE或省略,ref_text被解釋為 A1-樣式的引用。
- 如果 a1為 FALSE,則將 ref_text解釋為 R1C1樣式的引用。
解釋:
A1-樣式,就是我們平時使用的行號用數字,列標用大寫字母表示單元格的方式:
總結:
INDIRECT(單元格)與NDIRECT(“單元格”),雖然只是參數差了一對雙引號,但結果截然不同:
前者,是引用的單元格的地址,該單元格內的地址指向誰,結果就返回誰。比如以上示例,是引用B2單元格內的A2地址指向的值“韓老師講Office”。
后者,是引用的單元格內的值。
引用名稱
典型的應用是制作多級聯動菜單,如下圖:
公式:=INDIRECT(I2)
詳細介紹參考:
Excel036 多級聯動菜單,規范數據輸入
多工作表合并
如下圖:
公式:=INDIRECT(B$1&”!B”&ROW())
B$1:指B1單元格的值,此值剛好與工作表“1月”的名稱相同。使用混合引用B$1,公式向下填充時,行號不變,永遠是第一行的值;公式向右填充時,列標自動改變,改變為表“1月”“2月”“3月”……的名稱;
“!B”&ROW():
!是表與單元格的分界標志,公式向下拖動到哪一行,ROW()都是當前行的行號。
與SUMPRODUCT配合使用
與SUMPRODUCT函數配合使用,可以實現匯總項順序不一致的多工作表匯總。
如下圖:
=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$12)&”月!$B$2:$B$37″),匯總!B2,INDIRECT(ROW($1:$12)&”月!$c$2:$c$37″)))
詳細解釋請參考文章:
Excel SUM——求和項排序相同的多工作表數據匯總;SUMIF+INDIRECT——求和項排序不同的多工作表數據匯總
與VLOOKUP配合使用
與vlookup函數配合使用,可以實現一對多查找。
如下圖:
公式:
=VLOOKUP($B$12&ROW(B1),IF({1,0},$B$2:$B$9&COUNTIF(INDIRECT(“b2:b”&ROW($2:$9)),$B$12),$C$2:$C$9),2,0)
INDIRECT函數對工作簿引用
對工作薄引用的正確寫法是:
=INDIRECT(“[工作簿名.xls]工作表表名!單元格地址”)
INDIRECT函數對另一個工作簿的引用時,被引用胡工作簿必須被打開,如果沒有打開,函數 INDIRECT 返回錯誤值 #REF!。