把分类汇总值拆分到明细行
例题描述
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
英文已更新