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

PowerBI/Power Query:按分隔符列表拆分列提取短文件名

批量去除多扩展名提取短文件名(Power Query/M)

核心思路

从文件名末尾开始匹配预定义的扩展名列表,循环去除所有符合的后缀,直到剩余部分不再以列表中的扩展名结尾,以此保留短文件名本身包含的点。

具体实现步骤

  1. 加载数据:将包含文件名的表格导入Power Query编辑器。
  2. 定义扩展名列表:新建空白查询,输入以下代码自定义需要匹配的扩展名(按需增减),将查询命名为ExtensionList:
let
    Extensions = {".ipt", ".dwg", ".docx", ".xlsx"} // 替换为你的目标扩展名
in
    Extensions
  1. 添加自定义列处理文件名:返回原数据查询,添加自定义列,输入以下M代码(注意替换[文件名]为你实际的列名):
let
    CurrentName = [文件名],
    RemoveExtensions = (name as text, exts as list) as text =>
        let
            EndsWithExt = List.AnyTrue(List.Transform(exts, (ext) => Text.EndsWith(name, ext))),
            NewName = if EndsWithExt then
                let
                    MatchedExt = List.First(List.Select(exts, (ext) => Text.EndsWith(name, ext))),
                    TrimmedName = Text.RemoveRange(name, Text.Length(name) - Text.Length(MatchedExt), Text.Length(MatchedExt))
                in
                    RemoveExtensions(TrimmedName, exts)
                else
                    name
        in
            RemoveExtensions(CurrentName, ExtensionList)
in
    RemoveExtensions
  1. 验证结果:关闭并上载数据,即可得到去除所有目标扩展名的短文件名(例如1.5 in screw.ipt.dwg会被处理为1.5 in screw)。

补充说明

  • 扩展名列表必须包含带点的完整后缀(如.dwg而非dwg),保证匹配精准。
  • 递归逻辑会自动处理多层后缀(如.a.b.c格式的后缀会被完全去除)。
  • 若短文件名本身与扩展名列表项重复,也不会误删,因为仅从末尾匹配去除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:33:12