追加和累计到汇总表
举例
追加
有每日商品进货发货统计表如下图:
另有商品每日进销存汇总表如下:
现在需要把一日的进货发货数据追加到汇总表,并计算新的库存:前日库存+进货-发货
编写SPL脚本:
A |
|
1 |
=T("e:/work/20200803.xlsx").derive(Inventory) |
2 |
=T("e:/work/total.xlsx") |
3 |
=A1.run(Inventory=A2.select@z1(Goods==A1.Goods).Inventory+Purchase-Delivery) |
4 |
=file("e:/work/total.xlsx").xlsexport@a(A3) |
A1 读出需追加汇总的当日数据并新增一列Inventory
A2 读出汇总表数据
A3 循环A1中每一行,令Inventory的值为汇总表中最后一条当前商品的Inventory加上当前的Purchase再减去当前的Delivery。选项@z1表示从后向前选择第1条满足条件的记录
A4 将A3中的结果追加保存到文件total.xlsx,选项@a表示追加数据
累计
有销售人员每日销售额统计表,表中有一列是当月销售额统计,如下图所示是8月1日的表,月销售额已填:
下图所示是8月2日的表,只有当日销售额。本月其它表格均与此类似。
现在需要把各日表中的月销售额都填写完整。
编写SPL脚本:
A |
B |
|
1 |
=directory@p("e:/sales/*.xlsx").sort() |
|
2 |
=A1.(T(~)) |
|
3 |
for A2.to(2,) |
=A3.run('Month sales'='Day sales'+A2(#A3).select@1(Name==A3.Name). 'Month sales') |
4 |
=A2.run(T(A1(#),~)) |
A1 列出本月每日销售统计表文件并排序,选项@p表示列出文件全路径
A2 循环读出A1中所有的统计表数据为序表
A3 从第2日统计表开始循环
B3 循环当前统计表的每条记录,令月销售额为日销售额加上前一日该人员的月销售额
A4 循环A2中的所有计算后的统计表,保存到A1中相应序号的文件名中