• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで連続した数字を抜き出す)

エクセルで連続した数字を抜き出す方法

このQ&Aのポイント
  • エクセルで連続した3桁の数字を抜き出す方法を教えてください。
  • データの中から連続した3桁の数字のみを抜き出して、別の列に入力する方法を教えてください。
  • エクセルで大量のデータから連続した3桁の数字を抜き出す方法を知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

#1です。 質問のサンプルでは、先程ので大丈夫でしたが、仮に S15AB422XXXのような、連続した3桁の数字の前にも数字がある場合はただしく抜き出せないので修正しました。 Sub TEST02() Dim x As Integer, i As Integer, F As Integer, n As Long, s As String Dim base As Range With ActiveSheet Set base = .Range("A1") '基準点 Do Until base.Offset(n) = "" '基準点以下にデータのある限り続ける s = "" F = 0 x = Len(base.Offset(n)) '文字数取得 For i = 1 To x '1から文字数分まで If IsNumeric(Mid(base.Offset(n), i, 1)) Then '数字だったら s = s & Mid(base.Offset(n), i, 1) '控えておく F = F + 1 '数字カウント If F = 3 Then '数字カウント3で .Cells(n + 1, 2).NumberFormatLocal = "@" '頭の0が消えないよう文字列に .Cells(n + 1, 2) = s '隣に代入 Exit For '抜ける End If Else s = "" F = 0 End If Next '繰り返し n = n + 1 'カウント Loop '繰り返し End With End Sub

sacchi_jul
質問者

お礼

sacchi_julです。 修正版まで考えていただき、ありがとうございます。 merlionXXさんの想定されたケースまでは、想定していませんでいた。 確かに、こういたデータを扱うケースもあると思います。 助かりました。 ありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

こんな感じででしょうか。 Sub TEST01() Dim x As Integer, i As Integer, F As Integer, n As Long, s As String Dim base As Range With ActiveSheet Set base = .Range("A1") '基準点 Do Until base.Offset(n) = "" '基準点以下にデータのある限り続ける s = "" F = 0 x = Len(base.Offset(n)) '文字数取得 For i = 1 To x '1から文字数分まで If IsNumeric(Mid(base.Offset(n), i, 1)) Then '数字だったら s = s & Mid(base.Offset(n), i, 1) '控えておく F = F + 1 '数字カウント If F = 3 Then '数字カウント3で .Cells(n + 1, 2).NumberFormatLocal = "@" '頭の0が消えないよう文字列に .Cells(n + 1, 2) = s '隣に代入 Exit For '抜ける End If End If Next '繰り返し n = n + 1 'カウント Loop '繰り返し End With End Sub

sacchi_jul
質問者

お礼

sacchi_julです。 お早いお返事ありがとうございます。 大変助かりました!

関連するQ&A