分类后把分类转成列

 

举例

Excel文件book1.xlsx有两列CarColor,部分数据如下图所示:

..

现在需要把数据转换成如下格式:以Car的类型名为列,列出此车的所有颜色并去掉重复的颜色。

..

编写SPL脚本:


A

1

=T("E:/car/book1.xlsx")

2

=A1.group(Car).(Car|~.id(Color))

3

=A2.max(~.len())

4

=A2.(~.pad(null,A3))

5

=transpose(A4)

6

=file("E:/car/book2.xlsx").xlsexport@w(A5)

A1   读入book1.xlsx文件数据,选项@t表示首行是列标题

A2   Car分组,每组中把Car和它的不同颜色组成序列,~.id(Color)意即取本组中不重复的Color

A3   算出各组序列的最大长度

A4   将各组序列用null补齐到最大长度,以便作行列转置

A5   A4进行行列转置

A6   A5保存到文件book2.xlsx,选项@w表示写出的A5是由序列组成的序列