按数据值的间隔分组

举例

有 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