Excel跨工作表数据排序

时间:2022-08-21 05:12:20

Excel跨工作表数据排序

实例描述:学校某个年级有3个班级,各班的学生成绩放在同一个工作簿中,但在不同的3个工作表中,工作表的名称为“1班”、“2班”、“3班”,在这3个工作表中要求计算出学生的班级名次及年级名次(图1)。

实例分析:每班为一个工作表,在每个学生的“班级名次”处用RANK很容易计算出班级排名,可是怎样计算出它的年级总排名呢?通常比较费事的做法是:新建一个成绩总表,把所有班的成绩都复制到总表里,在总表里用RANK进行年级排名,然后通过筛选把各班成绩连同年级名次利用选择性粘贴数值到各个班级的工作表中,再在各个班级的工作表中进行本班内的成绩排名。这种做法有一个显著的缺点,就是当更改某个学生的分数时,学生的年级名次不能自动更新。这怎么办呢?

有的人认为RANK函数只能在同一个工作表中使用,其实它也可以跨工作表进行数据的排序。接下来,我们就看一看利用RANK函数是怎样进行班级名次及年级名次排序的吧!

同一工作表内的班内排名

由于每个班级的成绩独占一个工作表,所以在一个工作表内利用RANK函数可以轻松地实现数据的排序。我们以计算“1班”工作表中各个学生的班内名次为例,看一看RANK函数在同一工作中的应用。

首先,我们打开存放数据的Excel文件,选择名称是“1班”的工作表,定位在“学生A1”的“班内名次”所在的单元格M3。然后在编辑栏输入=rank(L3,$L$3:$L$10);接下来,拖动填充柄进行数据填充就可以了。其他工作表中的班内排名也是如此。其中,“$”是对数据区域进行绝对定位。

跨工作表的年级排名

如何利用RANK函数统计各个工作表中学生的年级名次呢?前面咱们分析过,如果把各个工作表中的数据都合并到一个工作表中再用RANK函数统计太费时费力了。

其实,我们可以在每个工作表学生的“年级名次”处利用RANK函数照样可以统计该生的年级名次,并且当某个人的分数发生改变时,年级名次也进行自动的更新。

我们还是以统计1班学生的年级名次为例,看一看RANK函数是怎样跨工作表进行数据统计的。

首先,选择名称是“1班”的工作表,定位在“学生A1”的“年级名次”所在的单元格N3,然后在编辑栏输入=RANK(L3,'1班:3班'!$L$3:$L$19),接下来,拖动填充柄进行数据填充就可以了。其他工作表中的年级排名也是如此。其中,“'”和“:”都是英文状态下的符号。

注意:关于数据引用范围即$L$3:$L$19,在实际应用中,不可能每个班的学生数都是一样多,所以我们要引用各个班级成绩工作表中记录最多的那个工作表中的范围。

由于是测试,在本例中笔者在“1班”工作表存放了8条件,在“2班”工作表中存放了4条记录,在“3班”工作表中存放了17条记录,所以数据引用的范围就是$L$3:$L$19。有关“'1班:3班'”的输入,你可以按住Shift键,用鼠标进行所需工作表的选取。

数据的自动更新

上述过程做完之后,当你更改任一工作表中的学生成绩时,学生的“班内名次”和学生的“年级名次”都会自动地发生相应改变。这比将各班数据合并在一起再求年级名次,然后用选择性粘贴数值到各班成绩表中的方法是不是更省时省力呀?怎么样?赶快试试吧(图2)!

上一篇:QQ网购整合易迅腾讯来年只身力战淘宝京东 下一篇:政府行为应遵循市场规则X