分类下的排名

 

举例

Excel文件book1.xlsx是学生总成绩表,部分数据如下图所示:

..

现在要求在Rank列计算学生在班级Class内的总分排名,如下图所示:

..

编写SPL脚本:


A

1

=T("E:/work/book1.xlsx")

2

=A1.group(Class).run(a=~.ranks@z(Score),~.run(Rank=a(#)))

3

=T("E:/work/book2.xlsx",A1)

A1   读入book1.xlsx文件数据

A2   按班级Class分组,循环每个组,计算出组内各学生总成绩的排名序列赋给变量a,再循环组内每个学生,给Rank字段赋值为a内对应行号#的排名。选项@z表示按从大到小排名

A3   A1保存到文件book2.xlsx