例1:行式转交叉
有商品日销售记录表sales.xlsx,部分数据如下图所示:

现在需要以日期为左表头、产品为上表头做一个交叉统计表,如下图所示:

编写SPL脚本:
| A | |
| 1 | =T("E:/work/sales.xlsx") |
| 2 | =A1.pivot(saledate;product,amount) |
| 3 | =T("E:/work/sales1.xlsx",A2) |
A1 读入sales.xlsx文件数据
A2 把A1以saledate为分组进行行转列,product的值转换成新列名,amount的值为新列值。
A3 将A2保存到文件sales1.xlsx
例2:交叉转行式
Excel文件book1.xlsx中有下图所示的交叉表数据,列方向是产品规格的宽度,行方向是长度:

现在想要把数据变成行式列表,规格显示为宽度*长度,如下图的形式:

编写SPL脚本:
| A | |
| 1 | =T("E:/work/book1.xlsx") |
| 2 | =A1.pivot@r(Style:length;width,Price) |
| 3 | =A2.select(Price).sort(width,length).new(width/"*"/length:Style,Price) |
| 4 | =T("E:/work/book2.xlsx",A3) |
A1 读入book1.xlsx文件数据
A2 把A1以Style为分组进行列转行,同时命名为新列名length,选项@r表示是列转行,原来的列名转换为新列width的值,原来的交叉格值转换成新列Price的值。
A3 从A2中选出价格Price不为空的记录,然后按width和length排序,再构造新数据集,用width加星号加length为新列Style的值,同时选取Price列。
A4 将A3保存到文件book2.xlsx
Excel数据处理:行式表与交叉表转换
本文介绍了如何使用SPL脚本将行式表转换为交叉表,以及将交叉表转换回行式表。以具体的例子说明,如商品日销售记录的行转列操作和交叉表数据的列转行过程,详细展示了转换步骤和脚本实现。
686

被折叠的 条评论
为什么被折叠?



