4.11 组排序
有数据如下:
| Class | Name | Maths |
|---|---|---|
| 1 | Tom | 85 |
| 2 | John | 92 |
| 2 | Joan | 86 |
| 1 | Rocky | 85 |
| 2 | Ham | 92 |
| 1 | Kate | 83 |
| 1 | Rose | 75 |
| 2 | Nomy | 78 |
| 1 | Neil | 61 |
| 2 | Jack | 84 |
| 1 | Joe | 88 |
将数据按照班级分组、班级之间按照平均分降序排序,班级内部按成绩 (降序) 的规则排序:
脚本:
| A | |
|---|---|
| 1 | =T(“score.xlsx”).group(Class;~.sort@z(Maths):data,~.avg(Maths):avg) |
| 2 | =A1.sort@z(avg).(data).conj() |
A1 读入数据,按照 Class 分组,组内按照 Maths 逆序排序,算出每组的平均成绩
A2 将 A1 按平均成绩逆序排序,然后将所有班级合并成一个序列
运行结果:
| Class | Name | Maths |
|---|---|---|
| 2 | John | 92 |
| 2 | Ham | 92 |
| 2 | Joan | 86 |
| 2 | Jack | 84 |
| 2 | Nomy | 78 |
| 1 | Joe | 88 |
| 1 | Tom | 85 |
| 1 | Rocky | 85 |
| 1 | Kate | 83 |
| 1 | Rose | 75 |
| 1 | Neil | 61 |
