Power Query如何按自定义类别分组生成独立索引号
Power Query 按自定义类别生成分组索引号操作方法
核心需求说明
- 数据以ID为一级维度,每个ID下包含G-TAN、K-TAN、M-TAN三类数据行
- 要求每个ID下的三类数据分别生成独立的连续索引号,跨ID、跨类别索引号不通用,同组内索引号按行顺序递增
零代码界面操作步骤
不用手写复杂公式,跟着点菜单就能实现:
- 将原始数据加载到Power Query编辑器,确认包含ID列、类别列(存储G-TAN/K-TAN/M-TAN值的列)及其他业务字段
- 同时选中ID列、类别列,点击顶部「主页」选项卡下的分组依据按钮
- 在弹出的分组设置窗口选择「高级」模式,确认分组字段为「ID」「类别」两项,新增聚合规则:列名设置为
分组数据,聚合操作选择「所有行」,点击确定完成分组 - 此时表中每一行对应唯一的ID+类别组合,点击「添加列」选项卡下的自定义列,输入自定义列公式:
Table.AddIndexColumn([分组数据], "索引号", 1, 1)
公式说明:对每个分组下的子表新增从1开始、步长为1的索引列,列名为「索引号」
- 点击新增自定义列右上角的展开图标,选择要展示的原始业务字段,取消勾选「使用原始列名作为前缀」后确定,即可得到最终结果
常见调整方案
- 如果需要同组内按指定字段排序后再生成索引号,把自定义列公式替换为以下内容即可,示例为按「提交时间」升序排序后生成索引:
Table.AddIndexColumn(Table.Sort([分组数据], {{"提交时间", Order.Ascending}}), "索引号", 1, 1)
- 如果不需要给G-TAN/K-TAN/M-TAN之外的类别生成索引,在分组前先筛选类别列,仅保留三类目标值即可
- 若要修改索引号起始值,调整公式中
Table.AddIndexColumn的第三个参数即可,比如需要从0开始计数就把对应位置的1改成0
内容的提问来源于stack exchange,提问作者val
相关产品推荐
相关产品推荐

