列方向汇总

举例

有 Excel 文件 Book1.xlsx,数据如下所示:

class name Math English PE
one Jack 89 78 83
Tom 90 60 99
Jerry 76 88 62
Kate 66 90 85
two Jim 87 60 76
Alice 100 99 97
Rebecca 75 76 88
three Cindy 63 80 72
Kitty 82 50 74
Lucy 40 100 63

现在需要从三个班的某次测试成绩,汇总出各班的人数、所有学科(包含数学、英语、体育)的总成绩:

calss num total
one 4 966
two 3 758
three 3 624

编写 SPL 脚本:

方法1:结构化数据

A
1 =file("Book1.xlsx").xlsimport@t()
2 =A1.groups@i(class;count(1):num,sum(~.array().to(3,).sum()):total)
3 =file("result.xls").xlsexport@t(A2)

A1   读取 Excel 数据

A2  按班级分组,计算每个班级的人数 num,所有学科(3 至 5 列)的总成绩 total,其中${to(3,5).("#"/~).concat("+")}拼出串:#3+#4+#5

A3  将结果 A2 导出至 result.xlsx

方法2:二维数组

A
1 =file("Book1.xlsx").xlsimport@w(;,2:)
2 =A1.groups@i(~(1):calss;count(1):num,sum(~.to(3,).sum()):total)
3 =file("result.xls").xlsexport@t(A2)

A1   读取 Excel 数据,从第二行开始读,读成一个二维数组

A2  按班级(第一列)分组,求每个班级的人数 num,所有学科(第三列往后)的总成绩 total

A3  将结果 A2 导出至 result.xlsx

上一篇:蓝桥杯.分解质因数


下一篇:蓝桥杯算法训练之字符串编辑