如何对学生成绩排序

竞渡2022-07-07  18

我举个中国式排名的例子。我们先来了解一下什么是中国式排名。我举个最简单的例子。

例如,你们班有50名学生。期末考试,49个同学100分,你90分。然后根据国际排名规则:49名同学并列第一,你是第50名。如果按照中国式排名:49人并列第一,你排第二。是不是瞬间和谐了?

由于中国式排名是中国的特色,Excel现有的排名功能明显是按照美国的老规则来排名的。要算中国式排名,还得用点技巧。

本文教你四种方法,由浅入深,一网打尽,总有一种适合你。

案例:

下表中,高考总分中有两个重复分数。请给这些学生中国式排名。

解决方案:

用if排名,用vlookup排名,用sumproduct排名(sum族的函数都可以用,比如sum+if,或者sumif。本文以sumproduct为例)+用countif排名,用透视表排名。排名方案一:用if排名。

1.在开始中国式排名之前,我们先来看看普通排名。您可以使用rank函数或以下sumproduct公式:

= SUMPRODUCT((C2 lt;$加元2:$加元15)*1)+1

公式解释:

Sumproduct是一个神函数,我已经多次解释过,也在各种情况下反复解释过。完整描述请参考Excel函数(4)——sum product函数计数、排名、求和等。在这个公式中,C2 < $C:$C:使用C2,即把当前行的总分与一整列的分数依次比较,判断C2是否比别人小。根据判断结果,你会得到一个真与假的数组,真等于1,假等于0。用F9看一下计算结果(如下图),非常直观,容易理解。

SUMPRODUCT((C2 lt;$ c : $ c ) * 1): SUMPRODUCT是一个乘积求和函数,所以它会把数组中的1和0依次相乘,最后求和,也就是说,如果有几个总分比自己高,你就得到几个+1:如果有五个比自己高,那么你就排第6,所以应该+12。现在开始中文排名步骤,先按c列。

3.在E2列中输入“1 ”,在E3列中输入以下公式,并将其下拉:

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

公式解释:

如果上下排得分相等,则排名相同;如果分数不相等,则无论前一行的分数是否有重复值,排名都是+1。

方案二:用vlookup排名

1.按照高考成绩从高到低的c列。

2.将C列复制粘贴到旁边的辅助列,如J->:选择J列->:从菜单栏选择数据->。删除重复项- gt;在弹出的对话框中勾选“高考分数”->:确定

3.现在J列是去除重复的分数。

4.用K列的秩函数对J列进行秩,公式如下:

=排名(J2,2牙买加元:12牙买加元)

5.在F2中输入以下公式,并将其下拉。目的是利用vlookup函数找到C列分数对应的K列去重排名,即中国式排名:

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

方案三:用sumproduct+countif排序

1.在单元格E2中输入以下公式并将其下拉:

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

公式解释:

*前面的部分前面已经解释过了,我们再来看这一段COUNTIF($ C $ 2:$ 15,$ 2:$ 15):COUNTIF统计数组中每个数的重复次数,即先用C2遍历整个数组,得到重复次数;用C3遍历整个数组,得到重复的次数...以此类推1/countif ($ c : $ c ,$ c : $ c ):将数组中每个数的重复次数除以1,当一个最大值为1的数组的总得分重复n次时,将重复次数除以1/n分成n等份,下图用F9。

SUMPRODUCT((C2 lt;$ C : $ C )*(1/COUNTIF($ C $ 2:$ C $ 15,$ C $ 2:$ C $ 15)):是由一组1和0组成的数组,是由一组1和小数组成的数组的乘积,0 *任意数之和为0,忽略不计;1 * 1也很好理解。当第二个值是一个分数,比如1/3(显示为0.3333333 …),表示重复3次,1/3会在数组中出现3次。sumproduct对其乘积求和,即1 * 1/3+1 * 1/3 = 1,即不考虑重复。

+1:比自己大的数+1,也就是自己的排名方案4:用透视表排名。

1.制作数据透视表:单击表格中的任意单元格-->从菜单栏中选择插入-->数据透视表

2.默认情况下,数据透视表将被放置在一个新的工作表中- gt;在右边的对话框中,将名称拖动到行区域->:将“高考总分”拖动到值区域,拖动两次:一列用于显示总分,另一列用于显示排名。

3.回到数据透视表,随机选择第二个“高考总分”列中的任意单元格-->:右键-->;选择将值显示为->:从大到小排列

4.在弹出的对话框中单击确定。

现在,C栏变成了中国式排名。

6.让我们再次对C列进行排序:选择C列中的任意单元格->:右键->;选择排序- gt;从大到小排序

7.然后把C列的标题改成“排名”就大功告成了。

转载请注明原文地址:https://juke.outofmemory.cn/read/624542.html

最新回复(0)