行式表与交叉表互换

本文介绍了如何使用SPL脚本将行式表转换为交叉表,以及将交叉表转换回行式表。以具体的例子说明,如商品日销售记录的行转列操作和交叉表数据的列转行过程,详细展示了转换步骤和脚本实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值