使用相邻数据作为分组条件
举例
有 Excel 文件 Book1.xlsx,数据如下所示:
051000 | 55.74 |
055000 | 61.47 |
056000 | 44.53 |
062000 | 142.11 |
081000 | 142.11 |
088000 | 44.53 |
092000 | 52.89 |
095100 | 118.37 |
096500 | 354.8 |
096700 | 6.49 |
099100 | 44.53 |
102600 | 162.74 |
需要按第一列分组,对第二列的数值求和。分组条件为: 如果本条不为空,且上一条为空,且上上条和本条的前两位数字不同,则分新一组。计算结果如下:
051000 | 161.74 |
062000 | 142.11 |
081000 | 186.64 |
092000 | 577.08 |
102600 | 162.74 |
编写 SPL 脚本:
A | |
1 | =file("Book1.xlsx").xlsimport() |
2 | =A1.group@i(if(#1 && #1[-1]==null && left(#1,2)!=left(#1[-2],2))) |
3 | =A2.new(#1,round(~.sum(#2),2)) |
4 | =file("result.xlsx").xlsexport@(A3) |
A1 读取 excel 文件内容
A2 按条件(本条不为空,且上一条为空,且上上条和本条的前两位数字不同)分组
A3 计算各组内第二列数值的和,保留两位小数,#1 代表每组第一列的第一个值
A4 结果导出至 result.xlsx
英文已更新