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

Power Query文本提取难题:提取指定租户及对应面积

Power Query M语言提取指定租户及对应面积

以下是针对需求的完整M语言实现,直接在Power Query的高级编辑器中替换现有代码即可:

let
    // 加载源数据(假设源表名为"源数据",根据实际情况修改)
    源 = Excel.CurrentWorkbook(){[Name="源数据"]}[Content],
    // 清理租户列的冗余字符:移除^、多余空格,拆分后提取目标实体
    添加清理后租户列 = Table.AddColumn(源, "清理后租户", each 
        let
            清理文本 = Text.Clean(Text.Remove([租户], {"^"})),
            // 匹配包含SA MAJESTE或PWGSC的完整实体
            匹配结果 = List.Select(Text.Split(清理文本, " "), each Text.Contains(_, "SA MAJESTE") or Text.Contains(_, "PWGSC")),
            // 拼接成完整租户名称(处理SA MAJESTE LA REINE这种多词情况)
            完整租户 = Text.Combine(List.Select(Text.Split(清理文本, " "), 
                (x) => Text.StartsWith(x, "SA MAJESTE") or Text.StartsWith(x, "PWGSC") or (List.Contains(匹配结果, "SA MAJESTE") and Text.Contains(x, "LA REINE")) or (List.Contains(匹配结果, "SA MAJESTE") and Text.Contains(x, "("))), " ")
        in
            完整租户),
    // 清理面积列的冗余字符,提取所有面积数值
    添加清理后面积列 = Table.AddColumn(添加清理后租户列, "清理后面积列表", each 
        let
            清理文本 = Text.Clean(Text.Remove([面积], {"^"})),
            // 提取所有括号内的数值
            面积匹配 = Text.Split(清理文本, "("),
            数值列表 = List.Transform(List.Skip(面积匹配), each Text.BeforeDelimiter(_, ")"))
        in
            数值列表),
    // 匹配对应面积(根据目标输出规律,SA MAJESTE取最后一个有效数值,PWGSC取第一个有效数值)
    添加目标面积列 = Table.AddColumn(添加清理后面积列, "目标面积", each 
        let
            租户类型 = if Text.Contains([清理后租户], "SA MAJESTE") then "SA" else "PWGSC",
            目标数值 = if 租户类型 = "SA" then List.Last([清理后面积列表]) else List.First([清理后面积列表]),
            // 移除.00后缀,保留千分位格式
            格式化数值 = Text.BeforeDelimiter(目标数值, ".")
        in
            格式化数值),
    // 保留需要的列并重命名
    最终结果 = Table.RenameColumns(Table.SelectColumns(添加目标面积列, {"清理后租户", "目标面积"}), {{"清理后租户", "租户"}, {"目标面积", "面积"}})
in
    最终结果

关键步骤说明:

  • 文本清理:先移除租户和面积列中的^符号,用Text.Clean处理多余空格,避免干扰后续匹配。
  • 目标租户提取:通过拆分文本+筛选逻辑,精准提取包含SA MAJESTE或PWGSC的完整实体,兼容SA MAJESTE LA REINE这种多词组合的情况。
  • 面积数值提取:拆分面积列文本,提取所有括号内的数值形成列表,为后续匹配做准备。
  • 面积匹配与格式化:根据租户类型匹配对应数值(完全贴合目标输出的规律),最后移除.00后缀,保留千分位格式。

注意事项:

如果源数据中面积数值的对应规律发生变化,可调整添加目标面积列步骤中的逻辑,比如通过判断日期后缀或其他标识来筛选对应数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:22:16