4.17 组内排名
计算学生的数学成绩在班里的排名:
| Class | Name | Maths |
|---|---|---|
| 1 | Tom | 85 |
| 2 | John | 92 |
| 2 | Joan | 86 |
| 1 | Rocky | 95 |
| 2 | Ham | 92 |
| 1 | Kate | 83 |
| 1 | Rose | 95 |
| 2 | Nomy | 78 |
| 1 | Neil | 92 |
| 2 | Jack | 86 |
| 1 | Joe | 98 |
脚本:
| A | |
|---|---|
| 1 | =T(“score.xlsx”).derive(:RankInClass) |
| 2 | =A1.group(Class).run(a=.ranks@z(Maths),.run(RankInClass=a(#))) |
A1 读数,并增加 RankInClass 列
A2 先按班级分组,在组内计算排名,并将值赋给 RankInClass
运行结果:
| Class | Name | Maths | RankInClass |
|---|---|---|---|
| 1 | Tom | 85 | 5 |
| 2 | John | 92 | 1 |
| 2 | Joan | 86 | 3 |
| 1 | Rocky | 95 | 2 |
| 2 | Ham | 92 | 1 |
| 1 | Kate | 83 | 6 |
| 1 | Rose | 95 | 2 |
| 2 | Nomy | 78 | 5 |
| 1 | Neil | 92 | 4 |
| 2 | Jack | 86 | 3 |
| 1 | Joe | 98 | 1 |
