如何在excel中對學(xué)生成績進行排名?

excel

作者:旁姣 發(fā)布:2023-04-10 11:30 491瀏覽

回答 共1個

我用中國式排名為例來說明吧,我們先來了解一下什么叫中國式排名?我就舉個最簡單的例子。

比如,你們班級一共50個人,期末考試有49個人考了100分,你考了90分,那么按國際慣用的排名法則:49個人并列第一,你第50名。如果按中國式排名:49個人并列第一,你第2名。是不是瞬間和諧了許多?

既然中國式排名是中國特色,那么,Excel現(xiàn)有的rank函數(shù)顯然是按老美的規(guī)則來排名的,如果要統(tǒng)計中國式排名,就得用到些技巧。

本文教大家4種方法,由淺入深、一網(wǎng)打盡,總有一款適合你。

案例:

下表的**總分,分別有兩個分數(shù)出現(xiàn)重復(fù),請用中國式排名給這些學(xué)生排名次。


解決方案:

用if排名

用vlookup排名

用sumproduct(sum家族的函數(shù)都可以,比如sum+if,或者sumif,本文以神級函數(shù)sumproduct舉例)+countif排名

用數(shù)據(jù)透視表排名

方案1:用if排名

1.開始中國式排名前,我們首先來看一下普通排名,可以用rank函數(shù),也可以用如下sumproduct公式:

=SUMPRODUCT((C2<$C$2:$C$15)*1)+1


公式釋義:

sumproduct作為神級函數(shù),我在各種案例中多次、反復(fù)講解過,比較完整的可參見Excel函數(shù)(四)–sumproduct函數(shù)計數(shù)、排名、求和等等

本公式中,C2<$C$2:$C$15:

用C2,即當(dāng)前行的總分與一整列的分數(shù)依次比較,判斷C2是否比別人小

根據(jù)判斷結(jié)果會得到一個由true和false組成的數(shù)組,true相當(dāng)于1,false相當(dāng)于0

用F9看一下計算結(jié)果(如下圖),就非常直觀容易理解


SUMPRODUCT((C2<$C$2:$C$15)*1):sumproduct是積求和函數(shù),因此會用數(shù)組中的1和0依次與1相乘,最后求和,也就是說,有幾個總分比自己高的,就得出幾

+1:如果有5個比自己高,那么自己排名第6,所以要+1

2.現(xiàn)在開始中國式排名步驟,先按C列的**分數(shù)由高到低排序


3.在E2列輸入“1”,在E3列輸入以下公式,下拉即可:

=IF(C3=C2,E2,E2+1)

公式釋義:

如果上下兩行分數(shù)相等,則排名相同

如果分數(shù)不等,那么不管上一行的分數(shù)有沒有重復(fù)值,排名+1



方案2:用vlookup排名

1.按C列的**分數(shù)由高到低排序


2.將C列復(fù)制粘貼到旁邊的輔助列,比如J-->選中J列-->選擇菜單欄的Data-->RemoveDuplicates-->在彈出的對話框中勾選“**分數(shù)”-->OK


3.現(xiàn)在J列是去除重復(fù)項的分數(shù)


4.在K列用rank函數(shù)對J列排名,公式如下:

=RANK(J2,$J$2:$J$12)


5.在F2輸入以下公式,下拉即可,目的是用vlookup函數(shù)去查找C列的分數(shù)所對應(yīng)的K列去重后的排名,即中國式排名:

=vlookup(C2,J:K,2,0)



方案3:用sumproduct+countif排名

1.在E2單元格輸入以下公式,下拉即可:

=SUMPRODUCT((C2<$C$2:$C$15)*(1/COUNTIF($C$2:$C$15,$C$2:$C$15)))+1


公式釋義:

*前面部分之前解釋過了,不贅述

重點來看這一段COUNTIF($C$2:$C$15,$C$2:$C$15):Countif統(tǒng)計數(shù)組中每個數(shù)的重復(fù)次數(shù),即先用C2歷遍整個數(shù)組,得到重復(fù)次數(shù);再用C3歷遍整個數(shù)組,得到重復(fù)次數(shù)……依次類推

1/COUNTIF($C$2:$C$15,$C$2:$C$15):

用1除以數(shù)組中每個數(shù)的重復(fù)次數(shù),等到一組最大值為1的數(shù)組

當(dāng)總分重復(fù)n次時,通過1/n,把重復(fù)次數(shù)拆分成了n等分

下圖是用F9查看這段公式后顯示的值,便于大家理解


SUMPRODUCT((C2<$C$2:$C$15)*(1/COUNTIF($C$2:$C$15,$C$2:$C$15))):

就是用一組1和0組成的數(shù)組,與一組1和小數(shù)組成的數(shù)組積求和

0*任何數(shù)為0,忽略不計;1*1也好理解

當(dāng)?shù)诙€值為分數(shù)時,比如1/3(上圖中顯示為0.33333333……),表示重復(fù)了3次,而且1/3會在數(shù)組中出現(xiàn)三次,sumproduct對它積求和即1*1/3+1*1/3+1*1/3=1,也就是不管重復(fù)幾次,最后結(jié)果都只統(tǒng)計1次

因此實現(xiàn)了中國式排名的邏輯


+1:比自己大的個數(shù)+1,即自己的排名

方案4:用數(shù)據(jù)透視表排名

1.制作數(shù)據(jù)透視表:點擊表格中的任意單元格-->選擇菜單欄的Insert-->PivotTable

2.默認將數(shù)據(jù)透視表放入一個新sheet-->在右邊的對話框中將“姓名”拖動到Rows區(qū)域-->將“**總分”拖動到Values區(qū)域,拖動兩次:一列用來顯示總分,另一列用來顯示排名


3.回到數(shù)據(jù)透視表,隨意選中第2個“**總分”列的任意單元格-->右鍵單擊-->選擇ShowValuesAs-->RankLargesttoSmallest


4.在彈出的對話框中點擊OK


5.現(xiàn)在C列已經(jīng)變成了中國式排名了


6.我們再對C列排下序:選中C列的任意單元格-->右鍵單擊-->選擇Sort-->SortLargesttoSmallest


7.然后把C列的標題改成“排名”,就完成了


11贊同

2023-04-10 11:34:32

推薦閱讀 RECOMMENDED READING