Excel 两层分类后的行转列
例题描述
Excel 文件中有下图所示的数据,同 Name 的物品可能有多种颜色。
现在想要把数据列出下图的形式,每种Type一行,其后依次列出每种Name及其Color。
实现方法
使用 Excel 插件 SPL XLL
在空白单元格写入公式:
=spl("=E(?).group(Type).(~.group(Name)).((~.Type|~.(Name|~.(Color))).conj())",A1:C6)
如图:
简要说明:
先按Type分组后,组内再按Name分组。循环Type各组,先取Type,再并上其Name子分组内各组的Name和Color组成的序列,最后将这个序列用conj进行和列。
问答搜集 https://stackoverflow.com/questions/63992575/referencing-data-without-duplicate-values
【附件】group2cols.zip
也可以使用 SPL 实现。即读取对应列表的列名,拼接成一个字符串,对应吧数据也这样处理,使用 pivot 函数执行宏,就可以动态转换了,该方法可以 pivot,也可以 pivot@r 相互转换