分类数据拼入列时要再分类或排序

 

举例

Excel文件book1.xlsx中有下图所示的数据,同Name的物品可能有多种颜色。

..

现在想要把数据列出下图的形式,每种Type一行,其后依次列出每种Name及其Color

..

编写SPL脚本:


A

1

=clipboard().import@t()

2

=A1.group(Type).(~.group(Name))

3

=A2.((~.Type|~.(Name|~.(Color))).conj@r())

4

=clipboard(A3.(~.concat("\t")).concat("\n"))

A1   从剪贴板里读取数据,选项@t表示首行是列标题

A2   先按Type分组后,组内再按Name分组

A3   循环Type各组,先取Type,再并上其Name子分组内各组的NameColor组成的序列,最后将这个序列用conj进行和列,选项@r表示递归计算到所有成员不再是序列为止

A4   A3中各Type组内部数据用\t连接、组之间用\n连接成字符串后放进剪贴板

先打开文件book1.xlsx,选择数据A1:C6,然后按Ctrl+C复制到剪贴板。回到集算器运行SPL脚本,运行结束后再回到Excel文件,点击E1,按Ctrl+V就可以把计算结果粘贴过来。