按数据值的间隔分组

举例

有 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