[[20190313112052]] 『文字だけを取り出す』(タナカ) ページの最後に飛ぶ

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

 

『文字だけを取り出す』(タナカ)

A1 に"50個"とあった場合、
"個"のみ抽出したいです。

"20セット"⇒"セット"

検索しても、ありそうでなかなか出てこず困っています。
初歩的な質問でしたらすみません。
宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:unknown >


 Option Explicit
Sub main()
    Dim i As Long
    Dim mstr
    Dim tmp
    With Worksheets("Sheet1")
        mstr = .Cells(1).Value
        For i = 1 To Len(mstr)
            If Not IsNumeric(Mid(mstr, i, 1)) Then
                tmp = tmp & Mid(mstr, i, 1)
            End If
        Next
        MsgBox tmp
    End With
End Sub
(隠居じーさん) 2019/03/13(水) 11:39

 数値が必ず文字列の先頭からであれば
 =REPLACE(A1,1,MATCH(1,INDEX(ISERROR(LEFT(A1,ROW(1:50))*1)*1,0),0)-1,"")
 ではどうか?
(ねむねむ) 2019/03/13(水) 11:44

 文字の先頭からなら以下でも
 =lookup("ー",substitute(a1,left(a1,row(1:50))*1,""))

(sy) 2019/03/13(水) 12:36


 文字が先頭ではなく(饅頭1個)とかならこういうのは!?

    Function UNIT(a As String) As String
        a = StrConv(a, vbNarrow)
        With CreateObject("VBScript.REGEXP")
            .Global = True
            .Pattern = "(\D*)(\d+)(\D+)"
            If .test(a) Then UNIT = .Execute(a)(0).submatches(2)
        End With
    End Function

 =UNIT(A1)
(稲葉) 2019/03/13(水) 12:45

 10年以上前に作ったののですが

 セルに

 =AlphaNum(A1,True)
 True を False にすると数字以外を抽出

 Function AlphaNum(txt As String, Optional Alpha As Boolean = True) As String
     With CreateObject("VBScript.RegExp")
         .Pattern = IIf(Alpha, "\d+", "\D+")
         .Global = True
         AlphaNum = .Replace(txt, "")
     End With
 End Function
(seiya) 2019/03/13(水) 13:01

コメント返信:

[ 一覧(最新更新順) ]


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