【问题标题】:Excel formula to get numbers starting from right until reach textExcel公式从右开始获取数字直到到达文本
【发布时间】:2018-02-15 11:27:26
【问题描述】:

在 Microsoft Excel 中,我有一个以数字开头的字段,中间总是有 2 个字母(每次都不同)。

如何使用字段右侧的公式获取所有编号,直到到达文本?

在这两个字母之后,我只有数字以防万一。

提前谢谢你

示例: 初始字段:123456FR04564 期望的结果:04564

请注意,并非每次我最后都有相同数量的数字

【问题讨论】:

  • 最后总是有5个数字吗?这两个字母总是位于同一个地方吗?字符串总是相同的长度吗?这都是有用的信息。
  • 拒绝。不是5个数字总是在最后。 2 个字母并不总是在同一个地方,字符串也不总是具有相同的长度

标签: excel-formula


【解决方案1】:

试试这个数组公式:

= RIGHT(A1,MATCH(FALSE,ISNUMBER(MID(A1,LEN(A1)+1-ROW(INDEX($A:$A,1):INDEX($A:$A,LEN(A1))),1)+0),0)-1)

注意这是一个数组公式,所以你必须在输入这个公式后按 Ctrl+Shift+Enter 而不仅仅是 输入

见下文,工作示例。


编辑

略短:

= RIGHT(A1,MATCH(FALSE,ISNUMBER(RIGHT(A1,ROW(INDEX($A:$A,1):INDEX($A:$A,LEN(A1))))+0),0)-1)

【讨论】:

  • 它就像一个魅力!如果你也有时间解释一下逻辑,那就太好了!
  • @Spiris LEN(A1)+1-ROW(INDEX(... 生成一个数组,其中大小等于字符串的长度,数字是倒序的,例如{13;12;11...}MID(A1,<that>,1) 以相反的顺序有效地将一个 13 个字符长的 1x1 字符串数组拆分为一个 1 个字符长的 13x1 字符串数组,例如{"4","6","5",...}ISNUMBER 如果是数字则返回 true。 MATCH(FALSE...) 找到字符串不是数字(即是字母)的第一个实例。现在我们有了最后一个字符的索引。 RIGHT(A1,<index of last char>-1) 返回你想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多