查找文本字符串中第一个(从右边开始)数字字符的位置
Find position of first (from the right) numeric character in a text string
我有这些字符串:
fghs13412asdf
dfs234245gk
并且想要return最后一个数字字符的位置,像这样:
5
3
也许 LibreOffice 与 Excel 有所不同,我在其中看到了所有示例。 Here 应该是直截了当的,但 return 出错了。
您需要 first 数字字符的位置(如在标题中)还是 last 数字字符的位置(如在body 你的问题)?
如果是第一个,使用正则表达式的简单 SEARCH() 函数应该可以解决问题,例如=SEARCH("([:digit:])";A1)
.
如果是last,从字符串的start算起,你可以使用不同的正则表达式(改编自 an answer in the OpenOffice forums by gerard24):=SEARCH("[0-9][^[0-9]]+$";A1)
.
如果需要last数字字符的位置,从字符串的end算起,只需从整个字符串的 LEN() 中减去步骤 2 中计算的值:=LEN(A1)-(SEARCH("[0-9][^[0-9]]+$";A1))
.
您将获得#VALUE!如果没有数字字符,或者输入字符串的最后一个字符是数字,则会出错。请注意,字符串中的空格将被忽略:
我有这些字符串:
fghs13412asdf
dfs234245gk
并且想要return最后一个数字字符的位置,像这样:
5
3
也许 LibreOffice 与 Excel 有所不同,我在其中看到了所有示例。 Here 应该是直截了当的,但 return 出错了。
您需要 first 数字字符的位置(如在标题中)还是 last 数字字符的位置(如在body 你的问题)?
如果是第一个,使用正则表达式的简单 SEARCH() 函数应该可以解决问题,例如
=SEARCH("([:digit:])";A1)
.如果是last,从字符串的start算起,你可以使用不同的正则表达式(改编自 an answer in the OpenOffice forums by gerard24):
=SEARCH("[0-9][^[0-9]]+$";A1)
.如果需要last数字字符的位置,从字符串的end算起,只需从整个字符串的 LEN() 中减去步骤 2 中计算的值:
=LEN(A1)-(SEARCH("[0-9][^[0-9]]+$";A1))
.
您将获得#VALUE!如果没有数字字符,或者输入字符串的最后一个字符是数字,则会出错。请注意,字符串中的空格将被忽略: