3.18 同序集合按原序归并计算合集
在结构相同的两个表中,根据多个字段将其中的记录有序归并。
数学和英语成绩分别存储在两个文件中,统计每位学生的总分。
数学:
CLASS | STUDENTID | SUBJECT | SCORE |
---|---|---|---|
1 | 1 | Math | 77 |
1 | 2 | Math | 80 |
… | … | … | … |
英语:
CLASS | STUDENTID | SUBJECT | SCORE |
---|---|---|---|
1 | 1 | English | 84 |
1 | 2 | English | 81 |
… | … | … | … |
脚本:
A | |
---|---|
1 | =T(“Math.xlsx”) |
2 | =T(“English.xlsx”) |
3 | =A1.sort(CLASS,STUDENTID) |
4 | =A2.sort(CLASS,STUDENTID) |
5 | =[A3,A4].merge(CLASS,STUDENTID) |
6 | =A5.groups@o(CLASS,STUDENTID; ~.sum(SCORE):TOTALSCORE) |
A1 读取数学成绩表
A2 读取英语成绩表
A3 数学成绩表按班级和学生排序
A4 英语成绩表按班级和学生排序
A5 使用 merge 函数,按班级和学生字段有序归并
A6 使用 groups 函数的 @o 选项,相邻值变化时重新分组。并统计每个学生的总分。
运行结果:
CLASS | STUDENTID | TOTALSCORE |
---|---|---|
1 | 1 | 161 |
1 | 2 | 161 |
1 | 3 | 159 |
… | … | … |