國慶期間,老徐整理了之前粉絲們的常見問題,其中發(fā)現(xiàn)很多人會對excel數(shù)字提取、文本挖掘有比較大的需求,今天特別將這幾種常見的案例一一復(fù)現(xiàn)并通過函數(shù)撰寫給出解決辦法。提示下有些函數(shù)組合寫的有點繞,如果對于部分用到的函數(shù)不夠熟悉可能需要一段時間來理解消化,有條件的朋友可以照著流程嘗試一遍,暫時沒有條件的朋友也可以收藏起來待需要時使用。
如下圖,如何由原始清單中(如下圖左),挑出符合指定內(nèi)容的清單?
如果不想大費周章的寫公式,篩選工具是你很好的選擇,而且很容易即可完成。本篇則是要以撰寫函數(shù)公式來完成這個工作。
單元格F4:{=IFERROR(OFFSET($D$1,SMALL(IF($B$2:$B$16=$F$2,
ROW($B$2:$B$16),''),ROW(1:1))-1,0),'')}
這是數(shù)組公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
復(fù)制單元格F4,貼至單元格F4:F16。
在數(shù)組公式中判斷單元格F2的內(nèi)容是否和單元格B2:B16中的每一個單元格的內(nèi)容相符,若是,則傳回該單元格的列號;否則傳回空字符串。在數(shù)組公式中,ROW($B$2:$B$16)={2,3,4, ... , 14,15,16}。
利用 SMALL 函數(shù)找出第(1)式傳回的列號之最小值。其中,ROW(1:1)向下復(fù)制時,ROW(1:1)=1→ROW(2:2)=2→ROW(3:3)=3→....。可以分別取出第 1,2,3,… 較小值。
將第(2)式依序取出的列號,置入 OFFSET 函數(shù)中,得到對應(yīng)的單元格內(nèi)容。
因為第(3)式當(dāng)公式向下復(fù)制時,有可能傳回錯誤訊,所以利用 IFERROR 函數(shù)將錯誤訊息以空字符串顯示。
所以,當(dāng)單元格F2改變時,可以顯示對應(yīng)的列表。
單元格B15:
{=IFERROR(OFFSET($B$1,SMALL(IF($A15=$A$2:$A$11,ROW($A$2:$A$11),
''),INT((COLUMN(A:A)+1)/2))-1,MOD(COLUMN(A:A)-1,2)),'')}
這是數(shù)組公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
復(fù)制單元格F15,貼至單元格F15:I17。
公式解釋請參考第一個案例。
以下來解釋和上一個案例情況不同之處:
公式向右復(fù)制時,INT((COLUMN(A:A)+1)/2)會產(chǎn)生:1, 1, 2, 2, 3, 3, …。
公式向右復(fù)制時,MOD(COLUMN(A:A)-1,2)會產(chǎn)生:0, 1, 0, 1, 0, 1, ….。
公式細節(jié)請參考第一個案例的圖片。
(如下圖) 分年/分月篩選數(shù)據(jù)
單元格F2:{=IFERROR(OFFSET(A$1,SMALL(IF(YEAR(日期)=$E$2,ROW(日期),
''),ROW(1:1))-1,0),'')}
這是數(shù)組公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
復(fù)制單元格F2,貼至單元格F2:H16。
請參考上兩個案例。其中差異之處,在于條件的設(shè)定:YEAR(日期)=$E$2,利用 YEAR 函數(shù)篩選『年』。
單元格F2:{=IFERROR(OFFSET(A$1,SMALL(IF((YEAR(日期)=$E$2)*(MONTH(
日期)=$E$4),ROW(日期),''),ROW(1:1))-1,0),'')}
這是數(shù)組公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
復(fù)制單元格F2,貼至單元格F2:H16。
公式原理同前面兩個案例情況。其中差異之處,在于條件的設(shè)定:(YEAR(日期)=$E$2)*(MONTH(日期)=$E$4),利用 YEAR 函數(shù)篩選『年』和 MONTH 函數(shù)篩選『月』。其中的『*』運算符,相當(dāng)于執(zhí)行邏輯 AND 運算。