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

如何在Power Query中移除列中字符串的最后X个字符?

Power Query M语言实现移除文件名最后11个字符的正确方法

你的问题出在直接对表格列应用文本函数,而不是针对每行的文本值操作。以下是两种简洁的解决方案,完全对应Excel中Left(string, len(string)-11)的效果:

方法1:使用Text.Start截取前N个字符

通过Text.Length获取字符串长度,减去11后作为Text.Start的截取长度,直接保留所需部分:

let
    Source = Forecasting,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Source.Name"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Other Columns"),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Duplicates",{{"Source.Name", "Submitted Reports"}}),
    #"Trimmed Last 11 Characters" = Table.TransformColumns(#"Renamed Columns", {
        {"Submitted Reports", each Text.Start(_, Text.Length(_) - 11), type text}
    })
in
    #"Trimmed Last 11 Characters"

方法2:使用Text.RemoveRange删除末尾字符

直接从倒数第11位开始删除到结尾,逻辑更直观:

let
    Source = Forecasting,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Source.Name"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Other Columns"),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Duplicates",{{"Source.Name", "Submitted Reports"}}),
    #"Trimmed Last 11 Characters" = Table.TransformColumns(#"Renamed Columns", {
        {"Submitted Reports", each Text.RemoveRange(_, Text.Length(_) - 11), type text}
    })
in
    #"Trimmed Last 11 Characters"

示例验证

输入数据:

Submitted Reports
Bug Bunny 241008923443.xlsm
Daffy Duck 241130234521.xlsm
Wyle E. Cayote 240909124312.xlsm

输出结果:

Submitted Reports
Bug Bunny 241008
Daffy Duck 241130
Wyle E. Cayote 240909

错误原因说明

你之前的Text.Reverse(#"Renamed Columns"{{"Submitted Reports"}})报错,是因为#"Renamed Columns"{{"Submitted Reports"}}返回的是整列表格,而Text.Reverse需要单个文本值。使用each关键字可以遍历每行的文本值,让函数作用于每个单元格内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:51:14