借助Power Query实现行转列:以Item为唯一标识整理Part数据
Power Query 动态转换Item与对应Part的结构
方案1:将Item与对应Part合并为单列层级结构
- 导入目标数据到Power Query编辑器
- 按
Item列分组:- 分组依据:选择
Item列 - 新列名:输入
Parts - 操作类型:选择「聚合值」→「列表」,并选中
Part列
- 分组依据:选择
- 添加自定义列,使用公式:
该公式会将当前Item作为列表首元素,后续拼接所有关联的Part{[Item]} & [Parts] - 删除原
Item和Parts列,仅保留新增的自定义列 - 点击自定义列右侧的展开按钮,选择「到新行」
- 重命名列(例如改为
Content),完成转换
方案2:保留Item与Part列结构(Item行显示标识,Part行留空Item列)
- 导入目标数据到Power Query编辑器
- 添加索引列(从0开始),随后按
Item列分组:- 分组依据:选择
Item列 - 新列名:输入
GroupedData - 操作类型:选择「所有行」
- 分组依据:选择
- 添加自定义列,使用公式:
let itemName = [Item], partList = Table.Column([GroupedData], "Part"), itemRow = [Item=itemName, Part=null], partRows = List.Transform(partList, (p) => [Item=null, Part=p]) in {itemRow} & partRows - 删除原
Item和GroupedData列 - 点击自定义列右侧的展开按钮,选择「到新行」,完成转换
以上两种方案均未硬编码Part的数量限制,无论未来每个Item关联的Part数量增加到多少,都能自动适配,可高效处理包含数千个Item的大型文件。
内容的提问来源于stack exchange,提问作者Kai
相关产品推荐
相关产品推荐

