You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

在Excel中提取文本字符串末尾数字:公式失效问题求助

提取字符串末尾数字的问题解决方法

原公式出错的原因

你用的这个公式是数组公式,必须按Ctrl+Shift+Enter组合键完成输入(Excel 365之前版本),否则公式只会计算第一个字符的位置,无法遍历整个字符串的每个字符,这就是你得到错误结果的核心原因。

比如针对RAW_U9,未按数组公式输入时,公式仅识别第一个字符R为非数字,返回位置1,LEN(cell)-1=5RIGHT取5位就得到AW_U9,和你的错误输出完全匹配。

修复原公式的操作

如果要继续使用原公式,输入完成后按住Ctrl+Shift再按Enter,公式会自动被大括号{}包裹(手动输入大括号无效),此时就能得到正确结果。

更简洁的替代方法

方法1:Excel 365/2021及以上版本专属(无需数组公式)

使用TEXTAFTER函数,直接提取末尾连续数字:

=TEXTAFTER(A1, "", -1, , , TRUE)

参数说明:最后一个参数TRUE指定匹配数字,-1表示从字符串末尾反向查找第一个连续数字段。

方法2:兼容旧版本的数组公式

同样需要按Ctrl+Shift+Enter输入,逻辑是从末尾往前统计连续数字的个数,再提取对应长度:

=RIGHT(A1, SUM(N(ISNUMBER(MID(A1, LEN(A1)-ROW(INDIRECT("1:"&LEN(A1)))+1, 1)*1))))

方法3:VBA自定义函数(全版本兼容)

  1. Alt+F11打开VBA编辑器,插入新模块;
  2. 粘贴以下代码:
Function GetTrailingNumbers(rng As Range) As String
    Dim str As String
    str = rng.Value
    Dim i As Integer
    For i = Len(str) To 1 Step -1
        If IsNumeric(Mid(str, i, 1)) Then
            GetTrailingNumbers = Mid(str, i) & GetTrailingNumbers
        Else
            Exit For
        End If
    Next i
End Function
  1. 返回Excel,在目标单元格输入=GetTrailingNumbers(A1)即可提取末尾数字。

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

火山引擎 最新活动