ExcelRANK函数的改进和应用
作者:陈炜东
来源:《计算机时代》2015年第07
        ;要: 在数据处理方面Excel表现了它的优势,它改变了传统的数据统计过程。但是Excel自带的函数已越来越不能满足人们日益增长的需求。RANK函数是Excel中常用的排位函数,一次只能对单一类别的数据进行排位,不能对多种类别的数据同时排位。研究了在RANK函数功能的基础上利用Excel VBA编程的方法重构新的排位函数,即FRANK函数,以解决RANK函数在实际应用中的不足,并以FRANK函数在班级成绩排名中的应用为例,进一步体现其改进的优势及可行性。
        关键词: Excel; 数据处理; RANK; VBA; FRANK; 成绩排名
        中图分类号:TP317.3 ; ; ; ; ;文献标志码:A ; ; 文章编号:1006-8228201507-51-02
        Improvement and application of RANK function in Excel
        Chen Weidong
        Zhengda High School Haimen Jiangsu 226100 China
        Abstract In the field of data processing Microsoft Excel has demonstrated its advantages and changed the traditional statistical method but the function of Excel is increasingly unable to meet the growing demand of people. RANK is a commonly used ranking function in Excel can only rank a single category of data at a time. In order to solve the problem in the practical application this paper proposes a new function named FRANK which is studied on the basis of RANK function and developed with Excel VBA and taking the application of FRANK function in class performance ranking as an example further demonstrates the improved advantage and the feasibility.
        Key words Excel; data analysis; RANK; VBA; FRANK; sort the scores
        0 引言
        数据处理软件Excel的出现改变了以往统计处理数据的方法,大大加快了数据处理的速度,提高了办公效率。人们对于Excel的使用,不仅仅是记录数据,主要还是对数据的分析
excel利用rank排名次公式
处理。无论是各行各业各部门的办公人员,还是教师或学生都离不开办公应用软件的使用。教师用EXCEL对学生成绩进行管理更普遍,快捷,方便[1]RANK函数是Excel自带的函数之一,它常用于数据的排位,但是RANK函数限制一次只能对相同类别的数据进行排位,不能对多种类别的数据同时排位,随着数据类别的增多,需要人工操作RANK函数的次数也就相对增多,降低了数据处理的效率。
        1 现有的RANK函数
        1.1 RANK函数的定义
        Microsoft Excel帮助文档中给出了RANK函数的定义:返回一个数字在数字列表中的排位[2]。数字的排位是其大小与列表中其他值的比值(如果列表已排序,则数字的排位就是它当前的位置)。其语法如表1所示。
        1 ;RANK函数的语法
        [语法结构\&RANKnumberreforder)\&参数定义\&number&为需要到排位的数字\&ref&为数字列表数组或对数字列表的引用。ref 中的非数值型参数将被忽略\
&order&为一数字,指明排位的方式\&]
        ·如果order0(零)或省略,Microsoft Excel对数字的排位是基于ref为按照降序排列的列表。
        ·如果order不为零,Microsoft Excel 对数字的排位是基于ref为按照升序排列的列表。
        1.2 RANK函数的示例
        如果将示例复制到空白工作表中,可能更易于理解该示例。操作方法如下:
        ⑴ 创建空白工作簿或工作表;
        ⑵ 按要求填入数据。如图1;
        ⑶ 在任意其他空白单元格中填入排位函数,得出对应值的排位结果,解析如表2
        1 ;填入的数据
        2 ;排位结果说明
        1.3 RANK函数的不足之处
        RANK函数可以实现排位的功能,得出每个数据在所处数据列表中的位置,但在学校的学生成绩数据处理中,要想快速高效,还可以做一些改进。
        ⑴ 不能实现多类别的同时排位
        从上面的介绍以及操作结果可以看出,RANK函数识别的是用户所选择的区域,也就是参数ref所指向的范围,一次只能对所选区域的单一类别进行排位。在处理学生成绩数据时,有一项是各班学生在班级中的排名情况,利用RANK函数处理,一次只能对一个班级进行排位,班级的数量决定着要重复操作的次数。班级越多,操作RANK函数的次数也就越多,而且也更容易出错,大大降低了工作效率。
        ⑵ 对于空和0的判断不明显
        如果ref数据区间中的数据至少有一项的数值为0,那么在进行排位的过程中,Excel就会自动将区间内为空的单元格作为0进行排位;如果ref数据区间中没有数值为0的单元格,但存在空单元格,那么系统就给出空单元格的排位结果为“#N/A”(值不可用)的提示。但是在学
生成绩排名的实际应用中,考虑到这样一种情况,就是考试统计名单中同时存在没有考试的学生和参加考试但是成绩为0的学生,RANK函数不能明确区分。
        1.4 本章小结
        介绍RANK函数的定义、语法结构以及使用方法,结合示例进行分析,指出RANK函数的缺陷,RANK函数不能实现多类别的同时排位,而且对于空和0的判断也不能满足要求,需要进行改进,以提高实际数据处理的效率。