標籤:

職場必會函數-INDIRECT函數

在excel中你可能會認為vlookup的查找最牛X、Sumifs求和最牛X,但它們都可以用其他函數所替換。而有一個函數卻無法用其他函數替代,高手寫的公式中經常會有它的身影。它就是:Indirect函數

INDIRECT函數

描述:可以把一個字元表達式或名稱轉換為地址引用。在excel也只有它可以實現這樣的功能。

語法結構:=INDIRECT(ref_text,[a1])

解釋:引用,並顯示其內容,分為兩種一種加引號一種不加。

用法舉例:

從上面的圖中大家有沒有發現,INDIRECT函數說白了是一個間接引用函數,哈哈,INDIRECT本身的英文意思就是「間接的、迂迴的」,那聰明的你一定會想了,我直接引用就得了,幹嘛要間接引用呢。這不多此一舉嗎?

不急大家先聽我慢慢講來。先來解釋下上面用到的公式:

我想對於第一個公式 =indirect("a1"),返回 "B1" 大家應該沒有什麼疑問,問題是=indirect(A1)返回"謝先森",可能會有點混淆。雖然看著是這麼回事,但有點不清晰。我們這麼來做:=indirect(a1)=indirect("B1"),這樣就明白了。(因為A1的值就是 "B1",這點要好好理解喲。如果會使用F9來查看公式的話,你會更加清楚的)

現在我能來回答有什麼好處了,好處就是智能、靈活。因為INDIRECT的參數是文本字元串,文本字元串可以靈活地進行組裝。也就是說,一個目標地址可以通過多個單元格的內容來「生成」。我們來看一下下面這個例子吧!

如果你想知道更多做多級列表的知識請點擊動態列表。下面是接著上面的例子。

應用舉例

一、製作動態下拉菜單

此例上面已經講過,公眾號裡面也有相應知識。感興趣的親請自行查找!

二、多表合併

所用到公式為:=INDIRECT(COLUMN()-1&"月"&"!B"&ROW())

簡單做下解釋:COLUMN()-1&"月"&"!B"&ROW()運行得到的結果是{1月!B2}。COLUMN()根據列號生成數字{2,3,4,5,6,7},ROW()根據行號生成行號,最後一起生成單元格地址。

三、多表查找(VLOOKUP INDIRECT)

此例用到2種方法,推薦使用第1種方法,所用到公式為:

=IFERROR(VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"銷售";"服務";"人事";"綜合";"財務"}&"!a:a"),A2),{"銷售";"服務";"人事";"綜合";"財務"})&"!a:g"),7,0),"無此人信息")

公式說明

1、確定員工是在哪個表中。這裡利用countif函數可以多表統計來分雖計算各個表中該員工存在的個數。

2、利用lookup(1,0/(數組),數組) 結構取得工作表的名稱

3、利用indirec函數把字元串轉換成單元格引用。

4、利用vlookup查找。

如果你要使用此公式,你只需要做以下更改:

公式套用

A2:查找的內容

{""}:大括弧內是要查找的多個工作表名稱,用逗號分隔

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

a:g :vlookup查找的區域

7:是vlookup第3個參數,相對應的列數。你懂的。

四、多表求和(SUMPRODUCT INDIRECT)

例子中所用到的公式為:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$6)&"月!A2:A9"),A2,INDIRECT(ROW($1:$6)&"月!B2:B9")))

表親們已經看到了,如果只有一個表,那隻需要用SUMIF就可以了。但是如果需要多個表同時求和,就需要用到INDIRECT()函數引用多個表了。最後生成的數據是一個數組,於是需要SUMPRODUCT()函數來進行求和了。

如果你想拿這個函數來用,你知道怎麼改嗎?有問題請留言!這些例子只一些簡單的知識點我就沒有詳細講解了,因為在公眾號里都可以找到的。最後還請大家幫我宣傳宣傳公眾號。


推薦閱讀:

Excel的SUM函數9種公式設置範例
【Excel函數】Sumif(s)用法介紹
Excel函數公式一對多查詢的12種公式
【Excel函數教程】SUM函數的取代函數SUMPRODUCT
有些函數,一般人我真不告訴他

TAG:職場 | 函數 |