indirect函數(shù)使用方法和應(yīng)用實(shí)例

一、語(yǔ)法:

INDIRECT(ref_text,[a1]):

ref_text:對(duì)單元格的引用,此單元格可以包含A1-樣式的引用、R1C1-樣式的引用、定義為引用的名稱(chēng)或者對(duì)文本字符串單元格的引用。如果ref_text是對(duì)另外一個(gè)工作部的引用(外部引用),則那個(gè)工作簿必須被打開(kāi)。

[a1]:一邏輯值,指明包含在單元格ref_text中的引用類(lèi)型。如果[a1]為T(mén)RUE或者省略,ref_text被解釋為A1-樣式的引用;如果[a1]為FALSE,ref_text被解釋為R1C1-樣式的引用。

注:我們常用的為A1-樣式。

A1-樣式:

這里的A就是列號(hào),即A列;

這里的1表示行號(hào),即第1行;

所以在A1引用樣式下,第1行第1列,用A1來(lái)表示,就是我們通常說(shuō)的A1單元格。


單元格A1-樣式

R1C1-樣式:

這里的R就是Row的第一個(gè)字母,R1就是表示第1行;

這里的C就是Column的第一個(gè)字母,C1就是表示第1列;

所以在R1C1引用樣式下,第1行第1列就是用R1C1來(lái)表示。

單元格R1C1-樣式



二、用法

1、indirect函數(shù)對(duì)單元格引用的兩種方式。

看下圖,使用indirect函數(shù)在C2、C3引用A1單元格的內(nèi)容。

indirect引用(1-2)

1——=INDIRECT("A1"),結(jié)果為C3。這種使用,簡(jiǎn)單的講,就是將這些引用地址套上雙引號(hào),然后再傳遞給INDIRECT函數(shù)。

2——=INDIRECT(C1),結(jié)果為C2。解釋?zhuān)阂驗(yàn)镃1的值就是"A1",在公式編輯欄,選中“C1”,然后按下F9鍵,計(jì)算值,可以看到變?yōu)椤?A1"”,本質(zhì)沒(méi)變,都是對(duì)單元格引用。

indirect引用(2-2)

上面兩者的區(qū)別在于:前者是A1單元格內(nèi)文本的引用,后者是引用的C1單元格內(nèi)的地址引用的單元格的內(nèi)容。

2、indirect函數(shù)工作表名稱(chēng)的引用

如下圖所示:


工作表名稱(chēng)的引用 (非純數(shù)字1-2)

如果需要在“二班”工作表,計(jì)算“一班”工作表B2:B5的成績(jī)總和??梢允褂眠@樣的 公式:=SUM(INDIRECT("一班!B2:B5"))?!窘忉?zhuān)篿ndirect("工作表名!單元格區(qū)域")】

工作表名稱(chēng)的引用 (非純數(shù)字2-2)

注:另外一種情況是當(dāng)工作表名稱(chēng)直接是數(shù)字的,在工作表名稱(chēng)兩邊必須添加上一對(duì)單引號(hào)。


工作表名稱(chēng)的引用 (純數(shù)字1-2 )

如果需要在“2”工作表,計(jì)算“1”工作表B2:B5的成績(jī)總和??梢允褂眠@樣的 公式:=SUM(INDIRECT("'1'!B2:B5"))。解釋?zhuān)篿ndirect(" '工作表名'!單元格區(qū)域")

總結(jié):如果工作表名為漢字,工作表名前后可以加上一對(duì)單引號(hào),也可以不加。但是數(shù)字和一些特殊字符時(shí),必須加單引號(hào),否則不能得到正確結(jié)果。

我們?cè)诠ぷ鞅砻麜r(shí)形成習(xí)慣盡量不要有空格和符號(hào),這樣可以不怕indirect引用忘記加單引號(hào)括起來(lái)。要么形成習(xí)慣所有indirect帶工作表名引用時(shí)都用單引號(hào)將代表工作表名的字符串括起來(lái)。


工作表名稱(chēng)的引用 (純數(shù)字2-2 )

3、INDIRECT函數(shù)對(duì)工作簿引用的書(shū)寫(xiě)方式和細(xì)節(jié)正確寫(xiě)法

=INDIRECT("[工作簿名.xls]工作表表名!單元格地址")

INDIRECT函數(shù),如果是對(duì)另一個(gè)工作簿的引用(外部引用),則那個(gè)工作簿必須被打開(kāi)。如果源工作簿沒(méi)有打開(kāi),函數(shù) INDIRECT 返回錯(cuò)誤值 #REF!。


INDIRECT函數(shù)對(duì)工作簿引用(1-2)
INDIRECT函數(shù)對(duì)工作簿引用(2-2)

4、Indirect函數(shù)應(yīng)用實(shí)例一:制作多級(jí)下拉菜單

數(shù)據(jù)有效性課程提到過(guò),可查看課程回顧。

Indirect函數(shù)-多級(jí)下拉菜單

5、Indirect函數(shù)應(yīng)用實(shí)例二:簡(jiǎn)單多表合并

日?qǐng)?bào)表-1號(hào)
日?qǐng)?bào)表-2號(hào)
日?qǐng)?bào)表-3號(hào)
日?qǐng)?bào)表-4號(hào)
日?qǐng)?bào)表-5號(hào)


日?qǐng)?bào)表匯總

公式:=INDIRECT(B$1&"!B"&ROW())

公式說(shuō)明:

B$1&"!B"&ROW(),根據(jù)ROW函數(shù)產(chǎn)生的行號(hào),生成單元格地址。例公式在第2行時(shí),ROW()結(jié)果是2,B$1&"!B"&ROW()的結(jié)果就是:1號(hào)!B2

當(dāng)往下拖動(dòng)時(shí)是1號(hào)!B3、1號(hào)!B4、1號(hào)!B5…………

當(dāng)往右拖動(dòng)時(shí)是2號(hào)!B2、3號(hào)!B2、4號(hào)!B2、5號(hào)!B2…………

6、Indirect函數(shù)應(yīng)用實(shí)例三:多表查找

工資表模板中,每個(gè)部門(mén)一個(gè)表。在查詢(xún)表中,要求根據(jù)提供的姓名,從財(cái)務(wù)部、人事部、銷(xiāo)售部3個(gè)工作表中查詢(xún)?cè)搯T工的基本工資。

你可以去用vlookup函數(shù)結(jié)合if函數(shù)一個(gè)表一個(gè)表查找,但是你可以想象會(huì)繁瑣。這才三張表,更不用去想假如有30張了…………

==IFERROR(VLOOKUP(查詢(xún)!A2,財(cái)務(wù)部!A:B,2,0),IFERROR(VLOOKUP(查詢(xún)!A2,人事部!A:B,2,0),IFERROR(VLOOKUP(查詢(xún)!A2,銷(xiāo)售部!A:B,2,0),"查無(wú)此人")))


工資查詢(xún)表
工資明細(xì)表-財(cái)務(wù)部
工資明細(xì)表-人事部
工資明細(xì)表-銷(xiāo)售部

分析:

如果,我們知道A3是財(cái)務(wù)部的,那么公式可以寫(xiě)為:

=VLOOKUP(查詢(xún)!A2,財(cái)務(wù)部!A:B,2,0)

如果,我們知道A3可能在財(cái)務(wù)部或人事部這2個(gè)表中,公式可以寫(xiě)為:

=IFERROR(VLOOKUP(查詢(xún)!A2,財(cái)務(wù)部!A:B,2,0), VLOOKUP(查詢(xún)!A2,人事部!A:B,2,0))

意思是,如果在財(cái)務(wù)部表中查找不到(用iferror函數(shù)判斷),查詢(xún)不到則去人事部表中再查找。

如果,我們知道A3只能能在財(cái)務(wù)部、人事部或銷(xiāo)售部中,否則“查無(wú)此人”,公式可以再次改為:

=IFERROR(VLOOKUP(查詢(xún)!A2,財(cái)務(wù)部!A:B,2,0),IFERROR(VLOOKUP(查詢(xún)!A2,人事部!A:B,2,0),IFERROR(VLOOKUP(查詢(xún)!A2,銷(xiāo)售部!A:B,2,0),"查無(wú)此人")))

意思是,如果在財(cái)務(wù)部表中查找不到(用iferror函數(shù)判斷),查詢(xún)不到則依次去人事部、銷(xiāo)售部表中再查找,三張表都沒(méi)有那就是“查無(wú)此人”。

如果,有更多的表,本例中僅有3個(gè)表,那就一層層的套用下去。假設(shè)有20-30張表你能想想么?【實(shí)際上如果看不明白建議直接通過(guò)方方格子、哈德門(mén)工具箱等外部插件直接合并工作表到一起,缺陷就是數(shù)據(jù)更新時(shí)都需要重新合并查找一次】


方方格子-匯總拆分

我們結(jié)合indirect函數(shù)和vlookup配合其他來(lái)一步實(shí)現(xiàn),簡(jiǎn)化公式,以適合在更多的表中查詢(xún)【學(xué)會(huì)修改公式嵌套使用】:


indirect函數(shù)和vlookup嵌套

=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"財(cái)務(wù)部","人事部","銷(xiāo)售部"}&"!a:a"),A2),{"財(cái)務(wù)部","人事部","銷(xiāo)售部"})&"!A:B"),2,0)

注:

COUNTIF(INDIRECT({"財(cái)務(wù)部","人事部","銷(xiāo)售部"}&"!a:a"),A2)

1——確定員工是在哪個(gè)表中。這里利用countif函數(shù)可以多表統(tǒng)計(jì)計(jì)算各個(gè)表中該員工存在的個(gè)數(shù);

2——利用lookup(1,0/(數(shù)組),數(shù)組) 結(jié)構(gòu)取得工作表的名稱(chēng);

3——利用indirec函數(shù)把字符串轉(zhuǎn)換成單元格引用;

4——利用vlookup查找即可。

關(guān)鍵部分:

A2:查找的內(nèi)容

{""}:大括號(hào)內(nèi)是要查找的多個(gè)工作表名稱(chēng),用英文狀態(tài)下逗號(hào)分隔;

a:a :本例是姓名在各個(gè)表中的A列,如果在B列則為b:b;

A:B :vlookup查找的區(qū)域

2:是vlookup第3個(gè)參數(shù),相對(duì)應(yīng)的列數(shù)。你懂的!【找什么;在哪兒找;查找區(qū)域第幾列;精確還是模糊查找】

7、Indirect函數(shù)應(yīng)用實(shí)例四:多表求和

如下圖所示,有1日~5日這5個(gè)列相同、行數(shù)不同的明細(xì)表,要求匯總出每個(gè)產(chǎn)品的銷(xiāo)量之和。

銷(xiāo)量表-1日
銷(xiāo)量表-2日
銷(xiāo)量表-3日
銷(xiāo)量表-4日
銷(xiāo)量表-5日


匯總求和

匯總求和公式:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)&"日!b:b"),A2,INDIRECT(ROW($1:$5)&"日!c:c")))

注:

如果只有一個(gè)表,我們只需要用sumif函數(shù)直接求和:

=SUMIF('1日'!B:B,合計(jì)!A2,'1日'!C:C)

對(duì)于多個(gè)表,除了用sumif()+sumif+sumif()...外【和上例iferror和vlookup結(jié)合一個(gè)個(gè)查找相似】,Sumif函數(shù)支持多表同時(shí)求和,但必須用indirect函數(shù)生成對(duì)多個(gè)表的引用,即:

INDIRECT(ROW($1:$5)&"日!B:B")和INDIRECT(ROW($1:$5)&"日!C:C")

用sumif組合起來(lái),即:

=SUMIF(INDIRECT(ROW($1:$5)&"日!b:b"),A2,INDIRECT(ROW($1:$5)&"日!c:c"))

但是上述的公式返回的每個(gè)表的求和結(jié)果,是一組數(shù),我們需要把他們匯總起來(lái),最后還需要用sumrpoduct函數(shù)進(jìn)行求和,即:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)&"日!b:b"),A2,INDIRECT(ROW($1:$5)&"日!c:c")))

或者最后用sum函數(shù)進(jìn)行求和,注意這時(shí)候需要使用數(shù)組公式哦,按ctrl+shift+enter運(yùn)行【{}】,即:

{=SUM(SUMIF(INDIRECT(ROW($1:$5)&"日!b:b"),A2,INDIRECT(ROW($1:$5)&"日!c:c")))}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?by:wehfouh

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2018-10-7 ? ?18:06

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容