全校那么多學生,如何快速確定誰需要補考、補考幾門,提取補考清單是個費腦筋的問題。
如何快速、高效從班級成績中提取補考清單,此前曾有人運用單元格設置結合公式來解決。我只用Excel函數與公式,不用人為設置單元格,幾分鐘就可搞定一個班級的補考數據,更加高效!
這里以我校11汽修班的成績為例來說明。工作表命名為“汽修班”,共41名學生,單元格區域C4:i44為7門學科的分數區域,各學科滿分為100分,小于60分為要補考的分數(圖1)。
首先插入工作表,命名為“汽修班補考”,在單元格A2~E2分別輸入“序號”、“姓名”、“科目”、“分數”、“補考門數”。
一、提取序號和姓名
在單元格A3中輸入以下數組公式:
=INDEX(汽修班!A:A,SMALL(IF(汽修班!$C$4:$I$44<60,ROW(汽修班!$C$4:$I$44),65536),ROW(A1)))&""
按下Ctrl+Shift+Enter組合鍵后,公式將返回第一個需要補考的序號,將A3單元格公式向右、向下填充到B71單元格,B71沒有任何數據了,即A3:B70單元格區域為所有需要補考的序號和姓名數據。
小提示:解釋一下上面的這個公式,首先在C4:I44區域中,找出不及格的,如果不滿足條件,就返回A列的第63356行,2003版Excel的最后一行,一般情況是一個空單元格;然后SAMLL(數組,ROW(A1)) 從小到大進行排序,返回這個數組中第幾小的數;最后結合row函數下拉,通過INDEX做到依次引用A列的數據。
二、提取科目
在單元格C3中輸入以下數組公式:
=INDEX(汽修班!$3:$3,MOD(SMALL(IF(汽修班!$C$4:$I$44<60,ROW(汽修班!$C$4:$I$44)*1000+COLUMN(汽修班!$C:$I),65536),ROW(A1)),1000))
按下Ctrl+Shift+Enter組合鍵后,公式將返回第一個需要補考的科目,將C3單元格公式向下填充到C71單元格,即可得到所有需要補考的科目數據。
以下數組公式也可以達到同樣的結果:
=INDIRECT("汽修班!r3c"&RIGHT(SMALL(IF(汽修班!$C$3:$I$44<60,ROW(汽修班!$C$3:$I$44)*1000+COLUMN(汽修班!$C:$I),65536),ROW(A1)),3),0)
三、提取分數
在單元格D3中輸入以下數組公式:
=INDIRECT("汽修班!"&TEXT(SMALL(IF(汽修班!$C$4:$I$44<60,ROW(汽修班!$C$4:$I$44)*1000+COLUMN(汽修班!$C:$I),65536),ROW(A1)),"r0c000"),0)
按下Ctrl+Shift+Enter組合鍵后,公式將返回第一個需要補考的科目的分數,將D3單元格公式向下填充到D71單元格,即可得到所有需要補考科目的分數信息。
四、匯總每人的補考門數
在單元格E3中輸入以下公式:
=IF(COUNTIF($B$3:B3,B3)=1,COUNTIF($B$3:$B$70,B3),"")
按下Enter鍵后,公式將返回第一位同學的補考門數,將E3單元格公式向下填充到E71單元格即可。
對單元格區域A2:E71進行單元格格式設置,美化工作表,可以刪除第71行的數據(圖2)。
對于其余班級,只需替換原始成績表數據,補考名單就會自動生成。