使用相邻数据作为分组条件

举例

有 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