據江湖傳聞,它們組合在一起被稱為「猥瑣三賤客」

如果看到標題你會心的一笑,估計你差不多應該知道是什麼了。這三個函數看似沒啥關聯,但是我們經常能見到它們組合在一起,它們就是--Index Small If。

這幾個函數組合起來作為數組公式使用,時常讓初學者頭疼,看起來好復(猥)雜(瑣)...內心好糾結...

其實,只要記住固定結構,以後直接套用就行了。無他,惟手熟爾。

這個組合可以用來幹什麼呢?

它主要用來進行同時返回多個值的查詢,可以根據條件來返回多個值。

比如以下示例中有多個部門的人員列表,根據部門名稱列出該部門所有人員。

在E3中寫公式如下:

=IFERROR(INDEX($B$1:$B$13,SMALL(IF($A$1:$A$13=$E$1,ROW($A$1:$A$13),9E 307),ROW()-1)),"")

這個公式看起來比較長,但是不管什麼公式,我們只要一步一步地分析就很容易理解了。

首先,我們先看If函數,$A$1:$A$13=$E$1,區域內每個單元格的值和E1單元格比較,結果返回數組{FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE}。

根據If公式,對於第一參數結果為True的,則返回行號;如果是False,則返回一個較大的數。9E307我們通常認為是Excel中最大的數。其實這裡只要使用一個相對較大的數就可以了,只要超過公式引用區域的最大行號即可。比如,我們可以用2^20次方(=1048576,即目前Excel表最大行號)來代替。

其次,Small函數返回第幾個最小值。第一個公式在E2單元格,行號是2,此時Row()-1=1,在Small公式中就表示第一個最小值。Small函數的第一個參數結果是一個行號數組,所以Small公式也就返回第一個符合條件的值的行號。向下拖動公式,Row()-1就依次增加,這樣就分別取除了第1、2、3……個最小值,這裡指的是行號。

接著,用Index函數,根據查找到的行號來返回B列的值。

最後,當找不到內容時,公式結果是錯誤值。所以用IfError來處理錯誤值,當結果為錯誤值時返回空文本。

最後的最後,提醒大家一下,對於較長的公式,我們要靈活運用F9來部分求值,從而測算公式結果,逐步理解整個公式的計算過程。選中公式中的一部分,按F9即可對選中部分求值,接著按ESC鍵即可退出並返回原公式狀態。

--End--

QQ群

9735376  

426619302  

214641323


推薦閱讀:

通州一樓盤報價超8萬 被指借政府遷址傳聞炒作
關於營口墜龍事件的傳聞是什麼?
中國歷史上有5位名人突然消失,傳聞說是穿越,至今仍是未解之謎
澳門有哪些江湖傳聞?
趙雅芝汪明荃牽手合影破「不合」傳聞 便宜王晶左擁右抱[高清大圖]

TAG:江湖 | 傳聞 | 組合 |