分类数据拼入列时要再分类或排序
举例
有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子分组内各组的Name和Color组成的序列,最后将这个序列用conj进行和列,选项@r表示递归计算到所有成员不再是序列为止
A4 把A3中各Type组内部数据用\t连接、组之间用\n连接成字符串后放进剪贴板
先打开文件book1.xlsx,选择数据A1:C6,然后按Ctrl+C复制到剪贴板。回到集算器运行SPL脚本,运行结束后再回到Excel文件,点击E1,按Ctrl+V就可以把计算结果粘贴过来。