如何实现分组后的去重并转置
例题描述
Excel文件book1.xlsx有两列Car和Color,部分数据如下图所示:
现在需要把数据转换成如下格式:以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
英文版