问题场景
-
需求不同根据总分出排名(从大到小100分、100分、99分、98分、97分),排名需求:
-
第一种排名:第1名,第2名,第3名,第4名,第5名;
-
第二种排名:第1名,第1名,第3名,第4名,第5名;
-
第三种排名:第1名,第1名,第2名,第3名,第4名(中国式排名,下期内容);
-
场景一
-
第一种排名:排名不重复,有N名同学,从1依次排到N。
- 给每行数据添加【序号或编号】要连续不能间断,经常用到。
目标
- 按要求给出每位同学的排名,且名次不重复。N名同学,排名1至N。
解决方案
用WPS自带排序功能实现
- 第一步在【开始】选项卡下选中J列总分列(移到【J】单击),下图为选中效果,再点击【排序】下的【降序】排列。
- 第二步:出现弹框,选中扩展选定区域总分单元格所在行的数据会根据总分的排序一起排序,而不是只排序当前选中区域),点击【排序】。
- 第三步:在排名F2单元格内输入1,选中F2单元格,鼠标移到F2单元格的右下角,出现实心的黑色【+】号,双击填充。
- 如果填充都是1(这是因为默认复制单元格填充,可在设置为填充序列,可BaiDu,不在此处介绍),则可以在F2填1,F3填2,同时拉选F2和F3单元格,鼠标移到F3单元格的右下角,出现实心的黑色【+】号,双击填充。
- 第四步:最后结果。
场景二
- 第二种排名:有相同数值排名,名次并列,会占用名次,之后排名不会顺延,如有2个并列第2,则下一个名次就是第4,并无第3名
目标
- 按要求给出每位同学的排名,有并列排名,占用名次,N名同学,排名1到N,如果有相同数值,则名次不连续。
解决方案
用RANK函数实现
- 函数解释:
=Rank(number,ref,[order])
# number:需要找到排位的数字。
# ref:数字列表数组或对数字列表的引用。Ref 中的非数值型值将被忽略。
# Order :指明数字排位的方式,0是对ref降序排列,1是对ref升序排列。
- 第一步:在F2单元格英文状态下输入:=RANK(J2,$J$2:$J$16,0)。
- 第二步:鼠标选中F2单元格,并移到F2单元格右下角,出现实心的黑色【+】,双击填充此公式。
- 第三步:F列排名结果,因为有两个并列第7名,则之后是第9名。
注意
-
公式中用到了相对引用和绝对引用,关于引用请参考前几节内容;
-
如果想将新出的排名从1到N按照升序排列,则可参考方法场景一的方案对F列【排名列】升序排列或者J列【总分列】降序排序,即可实现,结果如下图:
总结
- 实际业务场景复杂、需求多变时,如果不能一次性解决问题,可择优或结合使用,多尝试,办法总比困难多。