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

如何在Power BI中用M Query按条件合并单列内以|开头的行

Power Query M 实现跨行拼接操作步骤

假设你导入的原始数据单列名为Column1,按以下步骤操作即可:

步骤1:添加索引列(保证行顺序不打乱)

点击上方菜单栏「添加列」→「索引列」→「从0开始」,生成从0计数的索引列。

步骤2:添加分组标记列

点击「添加列」→「自定义列」,输入如下M公式,注意把#"添加索引"替换为你上一步的实际步骤名:

= let
    // 提取所有行的文本内容
    AllRows = Table.Column(#"添加索引", "Column1"),
    // 生成分组ID:非|开头的行ID+1,|开头的行和前一个ID保持一致
    GroupIDList = List.Skip(
        List.Generate(
            () => [CurrentID = 0, RowNum = 0],
            each [RowNum] <= List.Count(AllRows),
            each [
                RowNum = [RowNum] + 1,
                CurrentID = if Text.StartsWith(AllRows{[RowNum]}, "|") then [CurrentID] else [CurrentID] + 1
            ],
            each [CurrentID]
        ),
        1
    )
in
    GroupIDList

点击确定后,点击自定义列右上角的扩展按钮,选择「扩展到新行」,得到每一行对应的GroupID分组标识。

步骤3:分组拼接同组内容

点击上方菜单栏「转换」→「分组依据」,按如下参数设置:

  • 分组依据:选择刚生成的GroupID列
  • 新列名:输入合并后内容
  • 操作:选择「自定义」
  • 公式:输入Text.Combine([Column1], " ")
    点击确定后,即可得到你需要的拼接后结果。

可选优化

如果你的原始数据行首可能存在空格导致|开头判断失效,可以在添加索引列之前,先添加一步自定义列清洗原始文本:

= Text.TrimStart([Column1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:06:02