[[20190620141537]] 『文字列の後半の数字を抜き出したい』(たいよう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列の後半の数字を抜き出したい』(たいよう)

vbaで文字列の後半の数字を抜き出したいです。

具体的に言えば、A1に入力されたナンバープレートの
「富士山 599 さ 3776 」
という文字列から3776を抜き出したいです。

「富士山 599 さ 49 」
など、最後の文字が4文字までの不定の桁の数字になるため、
今の私では取得方法が分かりません…

取得方法を教えていただければと思います。
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


必ずスペースで区切られているのでしょうか? それなら、スペース文字を区切りとしてSplit関数で分けて、配列の最後の情報を得るだけで出来そうですが。
(???) 2019/06/20(木) 14:48

回答ありがとうございます。
スペースで区切られていたりいなかったりとそこの箇所も不定なので
最後の数値、を取り出せたらと考えています。
なにか良い案はありますでしょうか?
(たいよう) 2019/06/20(木) 14:57

最近よく使っている関数です。(適当かどうかは分かりません)

 =AGGREGATE(14,6,INDEX(RIGHT(A1,ROW($A$1:$A$4))*1,0),1)
(メジロ) 2019/06/20(木) 15:08


 =MID(A1,FIND("^",SUBSTITUTE(A1," ","^",3))+1,4)
 とか?
(seiya) 2019/06/20(木) 15:11

 >vbaで

 数式でもいいのなら

 =-LOOKUP(1,-RIGHT(A1,{1,2,3,4}))

 参考まで
(笑) 2019/06/20(木) 15:15

皆様回答ありがとうございます。
すみません、実装をVBAで行っているため、
VBAでの記載方法を書いていただけるととても嬉しいです。
お手数をおかけしますがよろしくお願いします。
(たいよう) 2019/06/20(木) 15:16

Sub main()
    Dim i As Long
    For i = Len(Range("A1").Value) To 1 Step -1
        If Not IsNumeric(Mid(Range("A1").Value, i, 1)) Then
            MsgBox Mid(Range("A1").Value, i + 1): Exit For
        End If
    Next i
End Sub
(mm) 2019/06/20(木) 15:51

 >vbaで...
 見逃していました。

 >ナンバープレートの 
 >「富士山 599 さ 3776 」 
 >という文字列から3776を抜き出したいです。

 ナンバープレートの(上記の)形式でないデータは無視します。

 Sub test()
     Dim a, i As Long, ii As Long
     With Range("a1", Range("a" & Rows.Count).End(xlUp))
         a = .Resize(, 2).Value
         With CreateObject("VBScript.RegExp")
             .Pattern = "^\D+ \d+ \D (\d{1,4})$"
             For i = 1 To UBound(a, 1)
                 If .test(a(i, 1)) Then
                     a(i, 1) = .Replace(a(i, 1), "$1")
                 Else
                     a(i, 1) = Empty
                 End If
             Next
         End With
         .Columns(2).Value = a
     End With
 End Sub

(seiya) 2019/06/20(木) 16:12


皆様回答ありがとうございます!!

無事に解決出来ました!
お世話になりました!
(たいよう) 2019/06/20(木) 16:41


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.