按数据值的间隔分组
举例
有 Excel 文件 Book1.xlsx,数据如下所示:
dt | val |
2000/1/1 | 61.47 |
2000/1/1 | 19.57 |
2000/1/1 | 44.53 |
2000/1/4 | 65.98 |
2000/1/5 | 142.11 |
2000/1/6 | 25.87 |
2000/1/6 | 142.11 |
2000/1/8 | 44.53 |
2000/1/9 | 873.2 |
2000/1/10 | 52.89 |
2000/1/11 | 82.4 |
2000/1/11 | 118.37 |
2000/1/11 | 354.8 |
2000/1/14 | 90.6 |
2000/1/15 | 6.49 |
2000/1/16 | 44.53 |
2000/1/17 | 33.76 |
2000/1/18 | 162.74 |
dt列是日期,val 列是数值。每 5 天分一组,计算各组内 val 的均值,结果如下:
dt | avg |
2000/1/1 | 66.73 |
2000/1/6 | 227.72 |
2000/1/11 | 130.53 |
2000/1/16 | 80.34 |
编写 SPL 脚本:
A | |
1 | =file("Book1.xlsx").xlsimport@t() |
2 | >st=A1(1).dt |
3 | =A1.group@i(if(interval(st,dt)==5,st=dt,false)) |
4 | =A3.new(dt:dt,round(~.avg(val),2):avg) |
5 | =file("result.xlsx").xlsexport@t(A4) |
A1 读取 excel 文件内容
A2 设起始时间为 st,初始值是第一个 dt
A3 分组,每 5 天分一组
A4 计算每个分组内的 val 均值,dt 为每组的第一个时间
A5 结果导出至 result.xlsx
英文已更新