排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel 2000/XP的数据排序方法。
一、数值排序
1.RANK函数
RANK函数是Excel计算序数的主要工具,它的语法为:RANK (number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。
例如E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2: $E$4),敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、 F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1),则计算出的序数按升序方式排列,即2、1和3。
需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与 F3相同,则按本法计算出的排名分别是3、3和1(降序时)。
2.COUNTIF函数
COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。
仍以上述为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4, ">"&E2)+1。计算各车间产值排名的方法同上,结果也完全相同,2、 1和3。
此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7、“>167.3等。 COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK函数相同。
3.IF函数
Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。上例中E2、E3、 E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序或“升序排序按钮,即可使工作表中的所有数据按要求重新排列。
假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2, G3,G3+1),只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。
二、文本排序
选举等场合需要按姓氏笔划为文本排序, Excel提供了比较好的解决办法。如果您要将数据表按车间名称的笔划排序,可以使用以下方法: 选中排序关键字所在列(或行)的首个单元格(如A1),单击Excel“数据菜单下的“排序命令,再单击其中的“选项按钮。选中“排序选项对话框“方法下的“笔画排序,再根据数据排列方向选择“按行排序或“按列排序,“确定后回到“排序对话框。如果您的数据带有标题行(如“单位之类),则应选中“有标题行(反之不选),然后打开“主要关键字下拉列表,选择其中的“单位,选中排序方式(“升序或“降序)后“确定,表中的所有数据就会据此重新排列。
此法稍加变通即可用于“第一名、“第二名等文本排序,请读者自行摸索。
三、自定义排序
如果您要求Excel按照“金工车间、“铸造车间和“维修车间的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具菜单下的“选项命令,打开“选项对话框中的“自定义序列选项卡。选中左边“自定义序列下的“新序列,光标就会在右边的“输入序列框内闪动,您就可以输入“金工车间、 “铸造车间等自定义序列了,输入的每个序列之
间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入,这些序列就会被自动加入“输入序列框。无论采用以上哪种方法,单击“添加按钮即可将序列放入“自定义序列中备用。
使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项对话框中的“自定义排序次序下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序对话框后根据需要选择“升序或“降序,“确定后即可完成数据的自定义排序。
需要说明的是: 显示在“自定义序列选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。