有小伙伴留言说想了解中国式排名,今天我们就来讲解这个问题。 看到题目,可能有些朋友会产生一个疑问,什么是中国式排名?通过一个例子来看看: C列是使用了RANK函数得到的名次,RANK函数的用法很简单:=RANK(要排名的数据,参加排名的区域,升序或者降序)(第三参数为0或者忽略,则为降序,非零值,为升序),D列是中国式排名的结果。直观的看是有些区别,但还是不明白区别在哪,别急,让我们按照成绩由高到低排序以后再看看: 看明白了吗? 区别就是当出现了相同名次的时候,普通的排名会跳过几个名次,C列中没有第三名和第四名,而中国式排名的名次是连续的,这种排名方式更加符合国人的习惯,因此也被称作中国式排名。 那么问题来了,既然使用RANK函数的结果不是中国式排名,要如何才能得到更加符合咱们自己习惯的排名结果呢?下面就为大家介绍三种得到中国式排名的方法: 一、SUMPRODUCT+COUNTIF的公式方法 第一种方法需要用到SUMPRODUCT和COUNTIF这两个函数配合完成,D2中输入公式为: =SUMPRODUCT((B$2:B$15>=B2)/COUNTIF(B$2:B$15,B$2:B$15)) 下面对这个公式的原理进行说明: 首先看公式的第一部分内容: B$2:B$15>=B2 判断B2到B15中的成绩是否大于等于当前的B2成绩,如果成立返回TRUE,否则返回FALSE。选中公式的这部分内容,然后按F9即可看到以下结果。 接下来我们继续看公式的第二部分内容: COUNTIF(B$2:B$15,B$2:B$15) 这是对B2到B15区域的每个成绩进行统计,如B2的97分一共有3个,B5的97分也有3个,B8的99分有1个......依此类推。选中公式的这部分内容,按F9同样可以看到统计结果: 通过以上的运算后,最终得到了两组逻辑值结果,如下图所示: 现在要对两组数据分别一一对应进行计算:第一个TRUE除以3,第二个FALSE除以1,第三个FALSE除以1......依此类推。在Excel计算中,TRUE相当于1,而FALSE相当于0。运算后最终得到了一组结果,如下图所示: 最后由SUMPRODUCT函数进行求和,得到当前成绩的排名,其他单元格下拉填充公式即可。 这个公式的思路实际上是统计了大于等于当前成绩的个数。 其实在实际应用中,还有一个相对简单的公式解法,只需要用到if函数,不过需要进行两步简单的操作来配合,下面就看看第二种可以得到中国式排名的方法。 二、if函数+简单操作的方法 首先我们按照成绩进行降序排序: 然后在第一个成绩的排名处输入1: 接下来在第二个成绩处输入公式: =IF(B3=B2,D2,D2+1),下拉即可。 为什么要这样填写呢? 其实很简单,我们只是做了一个判断,比较成绩中的第二个数值与第一个数值是否相等,如果相等就返回与第一个排名一样的排名即“1”,如果不等就在第一个排名基础上返回“+1”即“1+1”,以此类推! 虽然我们多做了一步排序,但是这两步操作的学习成本与上面那一长串难懂的函数相比是不是简单多了?! 除了以上两种方法之外,最后这一个方法就是利用数据透视表来完成中国式排名,相对于使用公式的方法,透视表简单!易懂!!高效!!! 让我们一起来看操作步骤吧! 三、数据透视表的方法 (透视表的界面根据大家使用软件版本的不同可能略有差异,以Excel2010版进行演示。) 插入数据透视表,将透视结果放置在现有工作表中,点击确定: 将姓名拉到列字段,成绩拉到值字段: 再拉一次成绩到值区域: 接下来鼠标在F列透视表值区域右键,选择“降序排列”: 鼠标再选择F列透视表值区域点击右键,点击“值显示方式”-“降序排列”: 出现提示时,直接点击确定: 完成后效果如图: 进行排版完成后的结果(具体操作步骤在文末动图中): 整个操作如果熟练的话用不了一分钟就可以搞定。 完整的操作和排版过程可以参考动画演示: 今天的教程就到这里,记得自己操作练习哦! 原创:老菜鸟(未经同意,请勿转载) 来源: 部落窝教育 |
|
来自: 部落窝教育BLW > 《部落窝excel/VBA》