これらの数字を抽出するにはどうすればよいですか?

これらの数字を抽出するにはどうすればよいですか?

000000xx または 00000yyy という形式の数字のリストがあります。このリストは数千あります。xx または yyy を抽出したいのですが、抽出する文字数が必要です。これを実行するより良い方法はありますか?

答え1

データが次の形式の場合:

1234432566ABC
または
765257754322XY

最後の 3 文字は次の形式になります。

ABC
または
2XY

3 つの文字のうち最初の文字が数字であるかどうかを確認することで、2 文字または 3 文字を抽出する必要があるかどうかを判断できます。

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

ここに画像の説明を入力してください

注記:

重要なコツは次のとおりです。

  1. 3番目の文字を分離する右から
  2. それが数字

答え2

=REPLACE(A1,1,SUM(--ISNUMBER(-LEFT(A1,ROW($A$1:INDEX($A:$A,LEN(A1)))))),"")
  • -ISNUMBER(…1文字列内の各数字文字に対して を返します。
  • SUM(…次に、それらを追加して、文字列の先頭の数字の数を返します。
  • 次に、先頭のREPLACE文字SUMを null 文字列にします。

ここに画像の説明を入力してください

答え3

これにより、xxまたはああ全体の長さが 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), "")

2つを変更すると計算効率が向上する可能性があります99削除する最大桁数に応じて変わります。

答え4

A1: 1234432566ABC

A2: 765257754322XY

B1、コピーされました:

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

それから、

B1戻る :ABC

B2戻る :XY

関連情報