Excel公式練習28:獲取指定班級的學生姓名
公式
在單元格D5中的數組公式:
=IFERROR(INDEX($A$2:$A$10,SMALL(IF($B$2:$B$10=D$2,ROW($A$2:$A$10)-ROW(A$2)+1),ROWS(G$4:G4))),"")
如圖2所示。
圖2
向下拖至單元格中沒有數據為止。
公式解析
公式中的:
IF($B$2:$B$10=D$2
將單元格區域B2:B10中的數據與單元格D2中的數據相比較,生成數組{FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE}。
公式中的:
ROW($A$2:$A$10)-ROW(A$2)+1
生成數組{1;2;3;4;5;6;7;8;9},作為IF函數的第2個參數。
這樣,上述兩個公式聯合生成數組{FALSE;2;FALSE;4;FALSE;FALSE;7;FALSE;9},作為SMALL函數的第1個參數。
公式中的:
ROWS(G$4:G4)
根據當前單元格所在位置生成一個數字,在G4中的數字為1,在G5中為2,將此數字作為SMALL函數的第2個參數。
SMALL函數產生的結果數值INDEX函數的行參數,在單元格區域A2:A10中獲取相應的值。
將單元格D5中的公式向下拖動時,相對引用單元格自動調整,並獲取相應單元格的值。
小結
SMALL函數忽略參數中的任何非數字的數據。
IF函數根據條件判斷一次性生成相應的數組。
公式適用於Excel2007及以上版本。
下期預告
Excel公式練習29:總是獲取某列數值中的最後5個數值之和
如下圖所示,在單元格區域A1:A10中有一系列數值,但有些單元格為空,使用公式求該區域最後5個數值之和,不計空格。
推薦閱讀:
※Excel操作技巧【大全】
※你見過嗎,上下兩重的Excel柱狀圖表趕緊收藏(絕密教程)
※Excel里所有SUM族函數詳解,學會它們,你會變得更帥
※Excel萬能函數SUMPRODUCT
※Excel非重複、非空白單元格提取