追加和累计到汇总表

 

举例

追加

有每日商品进货发货统计表如下图:

..

另有商品每日进销存汇总表如下:

..

现在需要把一日的进货发货数据追加到汇总表,并计算新的库存:前日库存+进货-发货

编写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表示追加数据

 

累计

有销售人员每日销售额统计表,表中有一列是当月销售额统计,如下图所示是81日的表,月销售额已填:

..

下图所示是82日的表,只有当日销售额。本月其它表格均与此类似。

..

现在需要把各日表中的月销售额都填写完整。

编写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中相应序号的文件名中