将多个列重新排版成交叉表

例题描述

Excel文件book1.xlsx中有下图所示的数据:

现在想要把数据变换成如下图的形式:

此题涉及读取Excel数据、行列变换等知识。

实现步骤

1、  编写脚本:

A
1=file("E:/work/book1.xlsx").xlsimport@w()
2=create(type,姓名,flag)
3=A1.to(2,).run(~.run( if(~!=null,A2.record([A1(1)(#),~ , "√"]))))
4=A2.pivot(姓名;type,flag)
5=file("E:/work/book2.xlsx").xlsexport@t(A4)

A1   读取book1.xlsx文件中第一个Sheet数据,选项@w表示读成序列的序列,即每行数据构成一个序列,各行数据的序列再组成一个大序列。

A2   创建有type,姓名,flag三列的序表

A3   循环A1的第2行开始的各行,再循环各行数据序列,如果序列成员不为空,则将它对应的列名和它本身依次插入A2的序表中,flag都设为√

A4   将A2以姓名为分组进行行转列,type的值为新的列名,flag为新的列值

A5   把A4导出到book2.xlsx中,选项@t表示首行输出列标题

2、  运行程序,结束后就可以看到work目录中生成的book2.xlsx文件。

【附件】 cross.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值