我如何提取这些数字?

我如何提取这些数字?

我有一个数字列表,这些数字的形式为 000000xx 或 00000yyy。有几千个这样的数字。我希望提取 xx 或 yyy,但需要提取字符数。有没有更好的方法来做到这一点?

答案1

如果您的数据形式如下:

1234432566ABC
或者
765257754322XY

最后三个字符的格式如下:

ABC
或者
2XY

我们可以通过查看三者中的第一个字符是否是数字来确定是否应该提取 2 个或 3 个字符:

=IF(ISERROR(--(LEFT(RIGHT(A1,3),1))),RIGHT(A1,3),RIGHT(A1,2))

在此处输入图片描述

笔记:

关键技巧是:

  1. 隔离第三个字符从右边
  2. 能够测试它是否是数字

答案2

=REPLACE(A1,1,SUM(--ISNUMBER(-LEFT(A1,ROW($A$1:INDEX($A:$A,LEN(A1)))))),"")
  • -ISNUMBER(…1为字符串中的每个数字字符返回一个。
  • SUM(…然后将它们相加,返回字符串开头的数字数量。
  • 然后我们用空字符串作为前导字符REPLACESUM

在此处输入图片描述

答案3

这应该会拉动二十或者只要整个内容的长度少于 99 个字符,就可以从右端关闭。

=RIGHT(A2, LEN(A2)-AGGREGATE(14, 7, ROW($1:$99)/ISNUMBER(--MID(A2, ROW($1:$99), 1)), 1))
'alternate
=REPLACE(A2, 1, AGGREGATE(14, 7, ROW($1:$99)/ISNUMBER(--MID(A2, ROW($1:$99), 1)), 1), "")

如果改变两者,计算效率可能会提高99为要剥离的最大数字数。

答案4

A1:1234432566ABC

A2:765257754322XY

B1,抄录如下:

=RIGHT(A1,ISERR(-LEFT(RIGHT(A1,3)))+2)

然后,

B1返回 :ABC

B2返回 :XY

相关内容