如何快速将交叉表转成普通列表
例题描述
Excel文件book1.xlsx中有下图所示的交叉表数据,列方向是产品规格的宽度,行方向是长度:
现在想要把数据变成行式列表,规格显示为宽度*长度,如下图的形式:
此题涉及读取Excel数据、行列转置变换、数据表排序及重构等知识。
实现步骤
1、 编写脚本:
A |
|
1 |
=file("E:/work/book1.xlsx").xlsimport@t() |
2 |
=A1.pivot@r(规格:长度;宽度,价格) |
3 |
=A2.select(价格).sort(宽度,长度).new(宽度/"*"/长度:规格,价格) |
4 |
=file("E:/work/book2.xlsx").xlsexport@t(A3) |
A1 读取book1.xlsx文件中数据,选项@t表示首行是列标题
A2 对A1进行行列转置,选项@r表示列转行,以规格列为分组,重命名为长度,转置后新列名为宽度和价格
A3 选出A2中价格不为空的记录,按宽度和长度排序后重构数据集,将宽度和长度用*连接成串后命名为规格,选出价格列
A4 把A3导出到book2.xlsx中,选项@t表示首行输出列标题
2、 运行程序,结束后就可以看到work目录中生成的book2.xlsx文件。
问答搜集 http://club.excelhome.net/thread-1570496-1-1.html
【附件】 cross2line.zip