如何实现分组后的去重并转置

 

例题描述

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

..

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

..

 

实现步骤

1、  运行集算器

可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。

2、  编写脚本:

..

把代码列出来看得清楚点:


A

1

=file("E:/car/book1.xlsx").xlsimport@t()

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是由序列组成的序列

 

3、  F9运行程序,运行结束后打开book2.xlsx可以看到生成的目标表格。

 

 

【附件】 car.zip