Power Query:基于两列添加索引的方法失效,寻求解决方案
Power Query 按Account+Quantity组合生成组内索引的正确方法
原步骤失效的核心问题是分组时没正确保留所有行数据,导致后续索引无法对应到原行。按以下步骤操作即可解决:
- 选中Account和Quantity两列,点击开始选项卡的「分组依据」
- 在分组对话框里切换到高级模式:
- 分组列保留Account和Quantity
- 添加聚合列,名称设为「明细行」,操作选择「所有行」,确定后会生成包含原行数据的嵌套表格
- 添加自定义列,输入公式给每个嵌套表格生成从1开始的索引:
Table.AddIndexColumn([明细行], "组内索引", 1, 1) - 点击新生成的「带索引的明细」列的展开按钮,选择需要保留的所有列(可取消「使用原始列名作为前缀」避免重复列名)
- 最后删除多余的「明细行」列,按需调整列顺序
如果想直接用M代码,假设你的数据源是名为表1的Excel表,替换对应列名后即可使用:
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 按组合分组 = Table.Group(源, {"Account", "Quantity"}, {{"明细行", each _, type table}}), 组内加索引 = Table.AddColumn(按组合分组, "带索引明细", each Table.AddIndexColumn([明细行], "组内索引", 1, 1)), 展开所有列 = Table.ExpandTableColumn(组内加索引, "带索引明细", Table.ColumnNames([明细行]) & {"组内索引"}), 删除冗余列 = Table.RemoveColumns(展开所有列,{"明细行"}) in 删除冗余列
内容的提问来源于stack exchange,提问作者Error 1004
相关产品推荐
相关产品推荐

