举例 有 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
|