You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query横向透视数据表:生成无聚合列联表的需求

Power Query 生成无聚合动态列联表解决方案

问题背景

原始输入数据:

A 1
B 1
C 1
A 2
C 2
C 3

期望输出格式:

A 1 2
B 1
C 1 2 3 

遇到的核心问题:

  • 常规列联表列数固定,无法适配分组下值数量不同的场景(比如有的分组有5个值,就需要5列)
  • 默认列联表会对数值列做聚合(求和/计数等),无法保留分组下的所有原始值

解决方案步骤

以下是Power Query的具体操作步骤(可直接复制M代码到高级编辑器):

1. 导入并预处理数据

将原始文本导入Power Query后,按空格拆分列,得到分组和值两列(假设表名为源)。

2. 给每个分组内的值添加序号

这一步是为了后续透视时能按顺序生成多列:

添加分组内序号 = Table.Group(源, {"分组"}, {{"临时表", each Table.AddIndexColumn(_, "序号", 1, 1, Int64.Type)}}),
展开临时表 = Table.ExpandTableColumn(添加分组内序号, "临时表", {"值", "序号"})

3. 动态透视生成列联表

通过透视操作,自动根据所有分组的最大值数量生成对应列:

动态透视 = Table.Pivot(展开临时表, List.Distinct(展开临时表[序号]), "序号", "值")

4. 可选:处理空值

如果需要把空值替换为空白,添加:

替换空值 = Table.ReplaceValue(动态透视, null, "", Replacer.ReplaceValue)

效果说明

  • 列数会自动适配所有分组中值的最大数量,比如某个分组有4个值,就会生成4列
  • 所有原始值都会被保留,不会做任何聚合操作
  • 分组内的值会按原始顺序排列到对应列中

内容的提问来源于stack exchange,提问作者blackroad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:43:19