大家好,我是工作忙瘋了的綠水零。
今天我要給大家介紹的是,一個經常被忽略,常年做配角的函數——INDIRECT。
在英文裡,INIDRECT 是不直接、間接的意思。因此它的作用顧名思義就是間接引用。
好家夥,名字自帶拐彎抹角。
但 INDIRECT 函數真的是個非常好用的函數!!和不同函數組合使用可以發揮超強的功能。
往下看
▋INDIRECT+SUM=跨表求和
将各月份 B2:B5 單元格的數據求和,并且彙總到季度合計工作表中。
▋INDIRECT+VLOOKUP=跨多表查詢
加上 VLOOKUP 就可以實現跨多表查詢。
▋INDIRECT+定義名稱+數據有效性=多級下拉菜單
之前,我們就介紹過多級下拉菜單的制作方法,它裡面就用到了 INDIRECT 哦~
知其然并且知其所以然,我們才能更好地舉一反三,熟練應用。
下面,有請今天的主角 INDIRECT 函數登場~ (今天的案例在 Excel 和 WPS 中均可使用。)
基本用法:
=INDIRECT(文本格式的引用地址, 引用地址的樣式)
INDIRECT 函數隻有兩個參數。
第一個參數是引用地址,要求格式為文本:
想引用 A2 單元格的值,需要用英文的雙引号框起來(如'A2')。
A2 單元格的值是 A1,直接寫 INDIRECT(A2)的結果等同于 INDIRECT('A1')。
第二個參數是引用地址的樣式,有下列兩種情況:
TRUE 或省略,引用格式為 A1 樣式;
FALSE,引用格式為 R1C1 樣式;
看不懂沒關系,我們舉幾個例子,來看下 INDIRECT 函數幾種基本使用方法。
▋TYPE 01:A1 樣式引用
A1 樣式,即用字母表示列号,數字表示行号以确定單元格的地址。
A5=INDIRECT('A1')
「A1」就表示地址為 A 列第 1 行的單元格,用 INDIRECT 引用 A1 的結果就是 A1 單元格的值。
▋TYPE 02:R1C1 樣式引用
R1C1 樣式,R 是行(Row)的英文簡寫,C 是列(Column)的英文簡寫,所以 R1C1 表示的是第一行第一列的單元格。
A5=INDIRECT('R1C1',FALSE)
這裡 R1C1 也同樣要用英文的雙引号引起來,而第二個參數為 FALSE。
▋TYPE 03:名稱引用
Excel 或 WPS 表格中有個叫名稱管理器的東西,利用它,我們可以将指定區域(可以是一個單元格,也可以是一個區域;可以是靜态區域,也可以是動态區域)定義為一個方便記憶和使用的名稱。
在使用 INDIRECT 函數的名稱引用前,就先需要定義名稱。
這裡我将 B 列的單元格定義為 A 列同一行的名稱,那麼熊大就等同于 B2 單元格,值是 101;
熊二就等同于 B3 單元格,值是 102……
公式:
=INDIRECT('熊大')
這裡使用 INDIRECT 引用「熊大」就直接顯示 B2 單元格的值 101 了。
引用名稱時同樣需要注意要用雙引号引起來。
我們在定義名稱時使用的其實是 A1 樣式,所以第二個參數就省略了。
數據彙總永遠是 Exceller 跨不過的坎,躲不過的命。
現在這裡就有兩張圖,需要把圖 1 中每個月的銷售報表數據,彙總到圖 2 季度彙總這個表裡。
而每個月報表的結構是完全相同的。
這種情況下,複制黏貼是不可能滴!
我們有更快捷的方法——有請 INDIRECT 函數上場。
公式:
=INDIRECT(B$1&'!B'&ROW())
需要彙總的數據分别在三個不同的表,但是工作表的結構是完全相同的。
那麼我們可以組合出動态的表名(工作表名稱!)+單元格位置(如 B2),然後用 INDIRECT 函數對其進行引用。
▋組合出引用地址
在 Excel 中跨表引用的格式是是表名+「!」,例如'1 月'!B2 就是引用工作表 1 月的 B2 單元格。
(這裡 1 月用單引号''引起來是因為它是字符串,在公式欄中使用字符串都需要用引号引起來。)
我們的目标就是要組合出'X 月'!BX 這種動态地址。
B2=B$1&'!B'&ROW()
(這裡引用的 B1 單元格的值,本身就是字符串,所以無需再用引号。)
▋套用 INDIRECT 進行間接引用
接着把組合出來的動态地址套上 INDIRECT 這個帽子就 OK 啦~
公式:
=INDIRECT(B$1&'!B'&ROW())
掌握 INDIRECT 函數的使用,你就可以實現:動态引用單元格區域、名稱區域、其他工作表區域,甚至其他工作簿區域的功能。
而且配合其他有區域參數的函數使用更香!
例如我們開篇演示的加上 SUM 函數實現跨表求和、加上 VLOOKUP 實現跨多表查詢等等~
INDIRECT 函數的參數小結~
有話要說...