当前位置:首页 > 百家

计算排名的类型和方法

1

又到年末了,各种排名估计也要开始进行了,什么销售绩效,考试分数等等,当然,虽然我们现在不提倡考试分数的排名,不过大家心里肯定多少还是会有一个比较。那今天就来看看排名的方法和类型 - 中国式排名和国际式排名。

那先说简单的,国际式排名,为什么说它最简单呢?是因为直接就可以用Excel中的函数Rank就能轻松实现,并列排名需要占用名次,如下:

关于这个公式就不做过多的解释了,再来看中国式排名,用Rank就不行了,我们可以怎么实现呢?

第一种方法:函数组合

公式:

=SUM((B2<=$B$2:$B$15)/COUNTIF($B$2:$B$15,$B$2:$B$15))

当然这里你把SUM换成SUMPRODUCT也是成立的,中间都应用了数组的方法,而Sumproduct本身就是个数组函数。对这个公式不理解的留言再解释吧。简单的小提示,选中公式中的部分,直接按F9可以看到单步计算结果。如:

先选中B2<=$B$2:$B$15,按下F9;再选中COUNTIF($B$2:$B$15,$B$2:$B$15),再按下F9就可以达到上面的效果,自己再分析一下。

第二种方法:数据透视表的值显示方式

选中数据源,插入数据透视表,然后将字段Name拖入到行中,Score拖入到值中,如:

在求和项:Score区域点击鼠标右键,弹出菜单中选择值显示方式下的降序排列,如:

弹出对话框中保持基本字段默认,直接点击确定:

结果如下:

第三种方法:Power Query (难度较高)

对Power Query感兴趣的小伙伴和想提升Excel技能的可以尝试一下,为什么说难度较高呢,因为它不能通过简单的界面操作完成,而是要深入学习一些M函数才能实现。

最终函数是:

= Table.AddColumn(更改的类型, "中国式排名", each Table.RowCount(Table.Distinct(Table.SelectRows(源,(x)=>x[Score]>[Score]),"Score"))+1)

所以在用PQ之前,必须先理解一下:

Table.RowCount

Table.Distinct

Table.SelectRows

(x)=>x

分别是什么意思?

当然,PQ也可以通过这个函数来实现国际式排名,毕竟在PQ中没有RANK函数。

最近在录制Power Query的课程,从基础到进阶,希望一系列的教程可以帮助你有所提升,毕竟界面的操作只能发挥全部能力的20%,另外80%的能力都要通过M函数来实现。

分享到: