引言:什么是中国式排名

看到题目,可能有些朋友会产生一个疑问,什么是中国式排名?通过一个例子来看看:

C列是使用了RANK函数得到的名次,RANK函数的用法很简单:=RANK(要排名的数据,参加排名的区域,升序或者降序)(第三参数为0或者忽略,则为降序,非零值,为升序),D列是中国式排名的结果。直观的看是有些区别,但还是不明白区别在哪,别急,让我们按照成绩由高到低排序以后再看看:

看明白了吗?

区别就是当出现了相同名次的时候,普通的排名会跳过几个名次,C列中没有第三名和第四名,而中国式排名的名次是连续的,这种排名方式更加符合国人的习惯,因此也被称作中国式排名。

那么问题来了,既然使用RANK函数的结果不是中国式排名,要如何才能得到更加符合咱们自己习惯的排名结果呢?下面就为大家介绍三种得到中国式排名的方法:

公式方法

第一种方法需要用到SUMPRODUCT和COUNTIF这两个函数配合完成,D2中输入公式为:

=SUMPRODUCT((B$2:B$15>=B2)/COUNTIF(B$2:B$15,B$2:B$15))

这个公式的思路实际上是统计了大于等于当前成绩的个数,对于新手来说,一下子要理解这个公式是有难度的,其实在实际应用中,还有一个相对简单的公式解法,只需要用到if函数,不过需要进行两步简单的操作来配合,下面就看看第二种可以得到中国式排名的方法。函数简单操作

首先我们按照成绩进行降序排序:

然后在第一个成绩的排名处输入1:

接下来在第二个成绩处输入公式:

=IF(B3=B2,D2,D2 1),下拉即可。

为什么要这样填写呢?

其实很简单,我们只是做了一个判断,比较成绩中的第二个数值与第一个数值是否相等,如果相等就返回与第一个排名一样的排名即“1”,如果不等就在第一个排名基础上返回“ 1”即“1 1”,以此类推!

虽然我们多做了一步排序,但是这两步操作的学习成本与上面那一长串难懂的函数相比是不是简单多了?!

除了以上两种方法之外,最后这一个方法就是利用数据透视表来完成中国式排名,相对于使用公式的方法,透视表简单!易懂!!高效!!!

让我们一起来看操作步骤吧!数据透视表的方法

(透视表的界面根据大家使用软件版本的不同可能略有差异,以Excel2010版进行演示。)

插入数据透视表,将透视结果放置在现有工作表中,点击确定:

将姓名拉到列字段,成绩拉到值字段:

再拉一次成绩到值区域:

接下来鼠标在F列透视表值区域右键,选择 “降序排列”:

鼠标再选择F列透视表值区域点击右键,点击“值显示方式”-“降序排列”:

出现提示时,直接点击确定:

完成后效果如图:

进行排版完成后的结果(具体操作步骤在文末动图中):

整个操作如果熟练的话用不了一分钟就可以搞定。

完整的操作和排版过程可以参考动画演示:

Java实现中国式排名_统计中国式排名的三种方法,一定有一个适合你相关推荐

  1. java中隐函数求导法则_隐函数求导的三种方法

    this.p={ m:2, b:2, loftPermalink:'', id:'fks_085075084086088070081083074065081087082066093087080', b ...

  2. java的字符串截取函数_java 字符串截取的三种方法(推荐)|chu

    众所周知,java提供了很多字符串截取的方式.下面就来看看大致有几种. 1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的 ...

  3. java 当前时间string_Java 获取当前系统时间的三种方法

    准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...

  4. java i o中文版_Java文件I/O的三种方法

    摘要:之前在面试中被问到过两次Java中文件读入输出怎么写,当时只记得一个大概,没有办法很清晰的说出一个条理,今天特地看出总结了一下这方面的内容,想要写出来给大家分享.首先文件读入输出流常用有三种:F ...

  5. java的销毁方法_销毁Spring Bean的三种方法

    @PreDestroy Java标准注解 实现DisposableBean的Destroy()方法 自定义销毁方法 XML 配置: Java注解 @Bean(destroy="destroy ...

  6. JAVA vector的遍历_谈谈vector容器的三种遍历方法

    说明:本文仅供学习交流.转载请标明出处.欢迎转载! vector容器是最简单的顺序容器,其用法相似于数组.实际上vector的底层实现就是採用动态数组.在编敲代码的过程中.经常会变量容器中的元素,那么 ...

  7. java 安全警告 关闭_关闭安全警告的两种方法

    昨天朋友发来信息说不管打开什么什么软件都出现安全警报,虽然不影响操作,但操作麻烦,做了好久才解决,给大家分享一下! 1.组策略方法 有的优化软件再优化后,为了提高安全性,都打开了文件打开安全警告提示, ...

  8. Java实现pdf转图片的工具类(三种方法实现PDF转图片的案例)【亲测可用】

    提示:有些时候我们需要在项目中展示PDF,所以我们可以将PDF转为图片,然后已图片的方式展示,效果很好.Java使用各种技术将pdf转换成图片格式,并且内容不失帧.清晰可见,该工具类也是开发中常用到的 ...

  9. python画误差棒_【材料课堂】三种方法绘制误差棒!

    材料类综合.全面.专业的微信平台 误差棒是数据可变性的图形表示,并用于图表以指示所报告的测量中的误差或不确定性.他们给出了测量精确度的一般概念,或者相反,距报告值有多远,真实(无误差)值可能是多少.误 ...

最新文章

  1. [UWP]了解模板化控件(7):支持Command
  2. Eclipse | 使用
  3. Django2中使用xadmin
  4. ORA-01810: 格式代码出现两次
  5. TCP 三次握手原理,你真的理解吗
  6. MySQL多项模糊查询
  7. *++p和*p++的区别
  8. MariaDB5.5.32 绿色版下载安装一条龙
  9. QTQuick控件基础(1)
  10. ibm watson_使用IBM Watson Assistant构建AI私人教练-第1部分
  11. 军用软件开发周期和文档
  12. 基于单片机USB接口的温度控制器
  13. 【项目源码】个人博客源码推荐
  14. java读取pdf多表格_怎么用java读取pdf中的表格
  15. 我不生产代码,只是代码的搬运工!超级多的 —— 第三方
  16. 叉积(向量积、外积)的运算法则及其与点积(数量积、内积)的混合运算
  17. DSP28377S_CAN通信
  18. 【Linux基础编程】tr命令
  19. 微信PC端不显示头像和表情怎么解决
  20. 如何利用编程思维,提高英语成绩?

热门文章

  1. Chrome 谷歌浏览器,如何安装合适的浏览器驱动?
  2. 传统Tier1再加码“本土化”,国产供应商如何应对?
  3. postman录制浏览器接口,同步浏览器cookie
  4. QT 调用Bartender C#动态库接口
  5. 无法进入系统如何正常备份数据
  6. Unity3d Note5(鼠标打飞碟(Hit UFO)游戏)
  7. element ui table组件 异步加载数据盒子位移
  8. 网络营销——教你三招定价新品
  9. 指数加权平均、动量梯度下降法、RMSprop、Adam优化算法
  10. 综合勤务管控系统服务器,公安勤务管理系统