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