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

Power Query:合并表格前为各分组子表开头插入指定规则新行

Power Query 分组子表首行插入指定记录实现步骤
  • 步骤1:源数据加载
    将需要处理的源数据表导入Power Query编辑器,确认表中存在Metadata1、Column2及其他业务字段,字段名无拼写错误。
  • 步骤2:行分组操作
    选中分组依据的字段,点击「分组依据」,选择高级分组配置:
    • 按业务需求设置分组字段
    • 新增聚合项,命名为GroupedData,聚合操作选择「所有行」,点击确定后即可得到每个分组对应的嵌套子表。
  • 步骤3:自定义列实现子表插行逻辑
    点击「添加列」-「自定义列」,输入以下M公式,注意将公式中#"分组的行"替换为你上一步分组操作对应的实际步骤名称:
= Table.AddColumn(#"分组的行", "ProcessedData", (currentRow) =>
    let
        SubTable = currentRow[GroupedData],
        // 取子表0起始索引为2的行对应的Column2值
        TargetVal = try SubTable{2}[Column2] otherwise null,
        // 生成和子表字段结构完全匹配的空记录
        BaseRecord = Record.FromList(List.Repeat({null}, Table.ColumnCount(SubTable)), Table.ColumnNames(SubTable)),
        // 给新记录的Metadata1字段赋值
        NewRow = Record.TransformFields(BaseRecord, {"Metadata1", (x) => TargetVal}),
        // 首行(索引0位置)插入新记录
        ResultTable = Table.InsertRows(SubTable, 0, {NewRow})
    in
        ResultTable
)

公式中加了try...otherwise容错逻辑,若某分组子表行数不足3行(不存在索引为2的行),会自动给Metadata1赋值null,避免刷新报错,不需要容错可直接去掉该部分写法。

  • 步骤4:结果展开
    选中新增的ProcessedData列,点击列头的展开按钮,选择需要输出的字段,删除原有的GroupedData辅助列,即可得到符合要求的处理结果。

内容的提问来源于stack exchange,提问作者Rafał Czapiewski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:51:14