把分类汇总值拆分到明细行

 

例题描述

Excel文件book1.xlsx中有各年月的水表用水量数据,部分数据如下图所示数据:

..

另有每年的漏水量统计表leakage.xlsx如下图所示:

..

现在需要把每年的漏水量按照各年月用水量占当年总用水量的比例,按漏水量分配到各年月的Water leakage列。

编写SPL脚本:


A

1

=T("E:/work/book1.xlsx")

2

=T("E:/work/leakage.xlsx")

3

=A1.group(Year)

4

=A3.run(a=A2.select@1(Year==A3.Year).'Water   leakage',s=~.sum(Water),~.run('Water leakage'=Water*a/s))

5

=T("E:/work/book2.xlsx",A1)

A1   读出book1.xlsx文件数据

A2   读出leakage.xlsx文件数据

A3   A1数据按照Year分组

A4   循环A3中的各组,变量a是从A2中选出对应年份的漏水损失,变量s是本年度总的Water用水量,然后循环本年度所有记录,给Water leakage列赋值为:Water*a/s

A5   A1保存到文件book2.xlsx