左修剪:删除数字的最后一个实例后的字符

左修剪:删除数字的最后一个实例后的字符

Excel 中的文本由数字、字母和符号组合而成。

010-038-310-1500-93745
010-038-310-3000-xxxxx-xxxxxxxx-xxxxxxxx
010-038-???-????-?????-????????
010-038-190-3109-?????-87655467-????????
010-038-310-3101-xxxxx-xxxxxxxx-xxxxxxxx
010-038-xxx-3103-xxxxx-xxxxxxxx-49359661

我想删除文本中最后一个数字后面的所有字符:

010-038-310-1500-93745
010-038-310-3000
010-038
010-038-190-3109-?????-87655467
010-038-310-3101
010-038-xxx-3103-xxxxx-xxxxxxxx-49359661

有没有办法使用 Excel 中的公式来做到这一点?

答案1

对于数据A1在另一个单元格中输入数组公式

=LEFT(A1,MAX(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},A1,ROW(INDIRECT("1:"&LEN(A1)))),0)))

在此处输入图片描述

数组公式必须使用 ++Ctrl而不是直接使用键来输入。如果操作正确,公式栏中会出现带有花括号的公式。ShiftEnterEnter

答案2

执行相同操作的 UDF:

Function LNum(Target As Range) As String

Dim i As Long

For i = Target.Characters.Count To 1 Step -1
If IsNumeric(Target.Characters(i, 1).Text) Then GoTo MyExit
Next i
MyExit:
LNum = Left(Target, i)

End Function

在此处输入图片描述

答案3

我没有安装 Excel,但语法似乎与 Google Sheets 相同。非常简单的正则表达式应该很容易理解。

=REGEXEXTRACT(A1,".*\d")

正则表达式可以捕获任何内容,但必须以数字结尾。

在此处输入图片描述

有谁使用过 Excel 可以验证语法是否相同吗?

相关内容