如何快速将交叉表转成普通列表

 

例题描述

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