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

Office 365中Power Query如何按序号将单行拆分为多行?

Power Query按序号(1.、2.…)拆分单行到多行的解决方案

核心思路

利用正则表达式的正向预查匹配序号格式(数字+.),拆分时保留序号本身,再将拆分后的列表展开为多行。

分步操作

  1. 打开Power Query编辑器,加载你的目标表格。
  2. 添加自定义列,替换[Spare]为你的实际列名,粘贴以下M代码:
= List.RemoveNulls(
    List.Transform(
        Text.Split([Spare], "(?=\d+\.)"),
        each Text.Trim(_)
    )
)
  1. 点击自定义列右侧的「展开到新行」按钮,将列表拆分为多行。
  2. 按需移除原列、重命名新列或过滤空行。

完整示例M代码

假设你的表格名为Table1,目标列是Spare:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Spare", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "SplitItems", each 
        List.RemoveNulls(
            List.Transform(
                Text.Split([Spare], "(?=\d+\.)"),
                each Text.Trim(_)
            )
        )
    ),
    #"Expanded SplitItems" = Table.ExpandListColumn(#"Added Custom", "SplitItems"),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded SplitItems",{"Spare"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"SplitItems", "Spare"}})
in
    #"Renamed Columns"

为什么之前的方法失败?

  • 用换行符#(lf)拆分:原数据中没有换行符,拆分逻辑不匹配,自然无效。
  • Text.Split([#"Spare"],{"0..9",".",0,RelativePosition.FromStart}):Text.Split的第二个参数仅支持文本/文本列表,不支持这种复杂的位置匹配语法,因此触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:35:00