查找文本字符串中的最后一个数字

Chr*_*rge 3 excel

我想在文本字符串中找到最后一个数字字符的位置.我正在使用这个公式来做到这一点:

MAX(IF(ISERROR(FIND({1; 2; 3; 4; 5; 6; 7; 8; 9; 0},A1)), "",FIND({1; 2; 3; 4; 5; 6; 7; 8; 9; 0},A1))

但是,如果字符串包含重复数字,则不起作用.

例如,当字符串为"10ABC2010ABC"时,它将返回6而不是9.当字符串为"10ABC2131ABN"时,它确实返回8而不是9.

有什么想法发生了什么?

Dmi*_*liv 6

这是工作公式:

=MAX(IF(ISNUMBER(VALUE(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),ROW(INDIRECT("1:" & LEN(A1)))))
Run Code Online (Sandbox Code Playgroud)

CTRL+ SHIFT+ ENTER进行评估.

说明:

  • ROW(INDIRECT("1:" & LEN(A1))) 返回你的数组 {1,2,3,...,Len(A1)}
  • 使用这个数组我们可以在A1单元格中取每个字符:MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)
  • 使用VALUE(...)我们尝试将每个字符转换为数字.它返回#VALUE!所有字符的错误,例如1,2,3,4,5,6,7,8,9,0
  • 使用ISNUMBER(...)我们检查是否VALUE(..)返回数字或错误,如果它返回数字,我们记住它的位置.
  • 最后一步 - 使用Max(..)我们找到数字字符的最后位置