使用多种函数组合或数据透视表对EXCEL中的数据进行排位

使用多种方法对EXCEL中的数据进行排名

日常工作中有时会遇到对Excel中的数据排名的需要,一般情况下可以分为美式排名和中国式排名。

美式排名通常使用RANK函数,直接指定范围,公式就可以自动按照顺序进行排名,自动处理相同数据的排名。

中国式排名有点复杂,中国式排名的习惯是并列排名不占用后面的名次,比如无论有几个并列第2名,之后的排名仍然是第3名。

中国式排名,其实就是对一个数在一组数据中排名第几的统计,重复数排名相同。通常可以使用COUNTIF,FREQUENCY和SUMPRODUCT等函数结合实现,或者可以使用数据透视表也可以实现。

1. 使用SUMPRODUCT进行中国式排名

如下图所示,对班级成员进行排名

= SUMPRODUCT((F$2:F$9>F2)*(1/COUNTIF(F$2:F$9,F$2:F$9)))+1

以单元格G2为例,简要解释如下:

因为SUMPRODUCT函数返回数组或区域中相应乘积的和,在这个函数中的其他函数都是以数组的形式返回值,比如F$2:F$9>F2和COUNTIF(F$2:F$9,F$2:F$9)的返回值分别如下图所示。

F$2:F$9>F2的返回值中只有一个值为TRUE,表明只有1个数据的值比F2大。

COUNTIF(F$2:F$9,F$2:F$9)的返回值表明了对应的数值在数列中的个数,"1"表示只有1个相同值,"3"表示有3个相同值。1/ COUNTIF(F$2:F$9,F$2:F$9)是为了平均设置相同的数据在数列中的比例,避免重复计算相同项。

EXCEL中的FALSE相当于0,TRUE相当于1,SUMPRODUCT函数返回两列数组中相应乘积的和。由于数组{F$2:F$9>F2}中只有一个TRUE,表示只有一个值比F2大,需要在SUMPRODUCT公式最后再加"1",表示处于第2位。

公式中的COUNTIF也可以换成MATCH:

= SUMPRODUCT(($F$2:$F$9>F2)*(MATCH($F$2:$F$9,$F$2:$F$9,0)=ROW($1:$8)))+1

2. 使用FREQUENCY进行中国式排名

这是一个数组公式:

= SUM(--(FREQUENCY(F$2:F$9,IF(F$2:F$9>=$F2,F$2:F$9,))>0))

输入完成按CTRL + SHIFT + ENTER完成数组输入。

FREQUENCY是以一列垂直数组返回相应数组的频率分布。IF(F$2:F$9>=$F2,F$2:F$9,)得到的结果为数组,其中大于F2的为原值,其余的为FALSE。FREQUENCY统计出IF的结果在F$2:F$9中的分布频率,如果频率大于0,结果为TRUE,否则为FALSE。"- -"的作用是将文本型、逻辑型的数值转换为数字型数值。

3. 使用SUMPRODUCT进行分组排名

4. 使用SUM、COUNTIF进行中国式排名

这是一个数组公式:

= SUM(IF($F$2:$F$9>F2,1/COUNTIF($F$2:$F$9,$F$2:$F$9)))+1,按CTRL + SHIFT + ENTER完成数组公式输入。

5. 使用RANK进行美式排名

=RANK(C2,$C$2:$C$9)

6. 使用数据透视表进行中国式排名

使用数据透视表的关键步骤是对成绩字段进行两次取值,把第2次的值作为名次进行显示:

欢迎多多留言交流。

举报
评论 0