[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列の後半の数字を抜き出したい』(たいよう)
vbaで文字列の後半の数字を抜き出したいです。
具体的に言えば、A1に入力されたナンバープレートの
「富士山 599 さ 3776 」
という文字列から3776を抜き出したいです。
「富士山 599 さ 49 」
など、最後の文字が4文字までの不定の桁の数字になるため、
今の私では取得方法が分かりません…
取得方法を教えていただければと思います。
よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
=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
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.