人見人怕的Indirect函數【Excel分享】
人見人怕的Indirect函數
大家好,今天 和大家分享「人見人怕的Indirect函數「,這個函數對於初學者,中級水平的朋友都怕,且看F1幫助也是看的雲里霧裡一樣,下面我聽我慢慢道來。
一、參數講解
大家記住返回是單元格對象,區域,當然你按F9返回的就是值了
2個參數
第1參數:引用單元格的,但是一定要給引用的單元格加雙號,這個和我們其它函數不同,也就說它的第1參數是文本,如我們要引用D9單元格,是這樣表示的,」D9"",不能直接D9
第2參數指單元格的引用樣式
單元格引用樣式分為2種,一種A1引用樣式,另一種是R1C1引用樣式
D9單元格就是A1引用樣式,R9C4 就是R1C1引用樣式,大家可以這樣理解Row是行的意思,Column是列的意思,Row9Column4,然後只取第1個字母,得到了R9C4
如果第1參數是用的A1引用樣式,那麼第2參數可以不寫,也可以用1;或者True
如果第1參數是用的R1C1引用樣式,可以用0;或者False,也可以簡寫成一個逗號,也就是說逗號要留下,後面0,Falses可以不寫
二、案例講解
第(1)個案例:引用D9單元格里「小老鼠""
A1引用樣式,這樣表達,=Inidrect(""D9"",1),也可以寫成這樣,=Inidrect(""D9"",True),也可以簡寫成=Inidrect(""D9"")
R1C1引用樣式,就這樣表達=INDIRECT(""R9C4"",0),也可以寫成這樣=INDIRECT(""R9C4"",Fasle),也可以簡寫成=INDIRECT(""R9C4"",)
第2個案例:多工作表按條件求和
把1月工作表,2月工作表,3月工作表裡數量匯總放到「總表「里,總表A列是條件
公式=SUM(SUMIF(INDIRECT({""1月"";""2月"";""3月""}&""!A:A""),A2,INDIRECT({""1月"";""2月"";""3月""}&""!B:B"")))
公式解釋
工作表名和單元格之間用感嘆號分隔
{""1月"";""2月"";""3月""}&""!A:A""這樣我們就是文本表達了3個工作表的A列,但是如果直接這樣放到sumif里是不可以,只有通過indirect函數轉一下,就變成了單元格區域A列了,就不是文本了,作為sumif函數第1參數;同理{""1月"";""2月"";""3月""}&""!B:B""作為sumif函數第2參數
由於indirect構建了多維,這裡sumif函數有降維的作用
最後為什麼還要在外嵌套一個sum函數呢,因為一個工作表有一個求和結果,3個表就有3個求和結果,所以最後還要把這3個結果相加
第3個案例:提取取連連的字母
公式=MID(A2,MATCH(,N(INDIRECT(MID(A2,ROW($1:$15),1)&2^20)),),COUNT(N(INDIRECT(MID(A2,ROW($1:$15),1)&2^20))))
公式解釋:
數組公式,要把游標定位到編輯欄里,然後三鍵Ctrl Shift 回車一齊下
先用mid把每一個字元分隔MID(A2,ROW($1:$15),1)
MID(A2,ROW($1:$15),1)&2^20為什麼後面要連2^20?這裡是把字母和2010最大的行號組合,構建單元格區域的文本表達,水到渠成的indirect函數出場了,一般由於我們最後一行都是不用,空的,所以會返回0
INDIRECT(MID(A2,ROW($1:$15),1)&2^20)這個公式返回0的錯誤值,當然我們是找第1個0出現的位置,也就是第1個字母出現的位置,如果直接用match是不行的,因為indirect函數構建了多維,所以要用N函數降維,然後它N(INDIRECT(MID(A2,ROW($1:$15),1)&2^20))才可以作為match函數第2參數
MATCH(,N(INDIRECT(MID(A2,ROW($1:$15),1)&2^20)),)這個公式就是返回第1個字母出現的位置,這樣我們就得到了mid第2參數
mid第3參數,這個好說,COUNT(N(INDIRECT(MID(A2,ROW($1:$15),1)&2^20)))統計indirect函數數字的個數,就是字母的個數
這種解法不是這個題目最好解法,但是如果你看懂了,這個解題方法值得我們學習!
最後:當然indirect函數可以做二級,三級下拉菜單,可以引用圖片,這裡由於時間和篇幅原因,就不再寫了。
推薦閱讀:
※【分享】可以讓你大笑一夏天的8部小眾喜劇片,數數你看過幾部?~
※原始點療法問答與學習心得分享新改版(1)
※【難忘巴厘】記一場風花雪月的蜜月旅行
※念佛心得分享(7月6日-7月10日)
※「BreakNg」你知道使用bilibili更便捷的方法嗎?