Excel中什麼是“萬金油”函式?E圖表述2018-12-08 22:43:11

您好,這裡是“E圖表述”為您講述的Excel各種知識。

學會Index+Small+Row

的“萬金油”函式

1、提取不重複的值

還記得我們第二次陣列教學篇中的Small+Row函式的返回值嗎?如果忘記了,建議還是先點下面的連結看看。如果你還記得,可以忽略下方的連結繼續讀。

千呼萬喚,“萬金油”函式終於登場了。這是一份模擬資料,

Excel中什麼是“萬金油”函式?

如果我們現在需要統計各銷售員的銷售數量,常規來說,如果有了銷售員的明細,我們用Sumif函式就可以很方便地彙總出來銷售數量,但是我們可以看出,銷售員的姓名是無序而且重複的,如果不借助輔助列,我們就需要用到陣列函式來提取銷售員姓名的唯一值了。

Excel中什麼是“萬金油”函式?

函式:單元格A12

{=IFERROR(INDEX($B$2:$B$8,SMALL(IF(MATCH($B$2:$B$8,$B$2:$B$8,0)=ROW($B$2:$B$8)-1,ROW($B$2:$B$8)-1),ROW(A1))),“”)}

函式說明:

利用Match函式找到第一次出現的值的行號,形成一個數組資料,再利用Small函式順序的找到出現的行號,用Index函式引用姓名,最後用Iferror函式遮蔽錯誤值。

函式執行過程:

Excel中什麼是“萬金油”函式?

2、提取重複值

上面我們提取了不同姓名的銷售員,那麼我們如果要提取相同姓名的銷售員的銷售記錄又該如何呢?

Excel中什麼是“萬金油”函式?

函式:單元格A12

{=IFERROR(INDEX(A$2:A$8,SMALL(IF(COUNTIF($B$2:$B$8,$B$2:$B$8)=2,ROW($A$2:$A$8)-1),ROW(A1))),“”)}

函式說明:

我們將第一例中的Match部分,替換上Countif函式,如果出現兩次就是我們需要的記錄了,其餘函式部分同上例。

函式執行過程:

Excel中什麼是“萬金油”函式?

3、提取滿足條件的明細

還是上面的資料,這次我們來提取銷售員“趙”,賣的“中”碼貨物的明細。

Excel中什麼是“萬金油”函式?

函式:單元格A13

{=IFERROR(INDEX(A$2:A$8,SMALL(IF(($B$2:$B$8=$B$11)*($C$2:$C$8=$C$11),ROW($A$2:$A$8)-1,99^9),ROW(A1))),“”)}

函式說明:

和上例不同的地方是,我們唯一改動的就是條件部分,用兩個條件相乘,我們要知道邏輯值是可以參與計算的,True=1、False=0,所以函式中的兩個條件相乘就形成了由0。1組成的陣列資料。剩下的運算道理和第一例完全一樣。

函式執行過程:

Excel中什麼是“萬金油”函式?

作者雲:

強大的“萬金油”函式,其實也就是這些主要的功能了。本來還想舉幾個例子,但是除了條件變換了,其他的內容都是一樣的,而且有的例子沒有必要非使用“萬金油”函式,巧妙的使用其它函式結合陣列資料一樣可以達到效果。

如果上面的內容對您還有幫助,或者覺得作者比較用心。可以關注、評論、留言、轉發“E圖表述”,便於您繼續觀閱和瀏覽往期的“Excel乾貨分享”。微信公眾號:“E圖表述”或者“Excel_Easy”