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

如何在Power Query中以换行后接非空格字符为分隔符拆分列到行?

在Power Query中实现指定规则的文本拆分

核心思路

Power Query原生不支持正则,我们换个逻辑实现:先把文本按换行符拆成单行列表,再将开头带空格的行合并到上一个非空格行,最后把合并后的结果转成多行记录。

具体操作步骤

假设你的原始数据列名为原始内容,按以下步骤操作:

  1. 选中目标列,进入Power Query编辑器(数据选项卡→从表格/区域)
  2. 添加自定义列,输入以下M代码:
= let
    // 按换行符拆分文本为单行列表
    SplitLines = Text.Split([原始内容], "#(lf)"),
    // 遍历列表,合并连续的缩进行
    GroupedLines = List.Accumulate(SplitLines, {}, (state, current) =>
        if Text.StartsWith(current, " ") then
            // 当前行是缩进行,合并到最后一个分组
            List.RemoveLastN(state, 1) & {List.Last(state) & "#(lf)" & current}
        else
            // 当前行是新分组的起始行,新增分组
            state & {current}
    )
in
    // 将分组后的列表转成表格,实现拆分行
    Table.FromList(GroupedLines, Splitter.SplitByNothing(), {"拆分后内容"})
  1. 展开这个自定义列的结果,就能得到目标输出:第一行包含前三项带换行的内容,第二行是最后一项内容

代码逻辑说明

  • Text.Split([原始内容], "#(lf)"):把单元格内的多行文本拆分为每行一个元素的列表
  • List.Accumulate:遍历列表逐个处理每行内容,自动判断是否需要合并到上一行
  • Table.FromList:将分组后的列表转换为表格,完成拆分行的最终效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:20:04