0

これは、ここにいるすべてのコンピューター ウィズにとって簡単なことかもしれません。EXCEL テキスト ボックス内の文字列を抽出したいと考えています。データセットはちょっと乱雑です。必要のないスペース、文字、その他のテキストがあります。例えば:

「ABC ABCABC12345D1」からABC12345D1を取り出す必要があります

                             "ABC,ABCABC12345D1"
                             "KOhn!ABCABC12345D1"
                             "ABCABC12345D2 ABCABC12345D1"
                             "ABCABC12345D1ABCABC12345D1"
                             "MCDONALDABCABC12345D1"

しかし、それは私が抽出しなければならない識別子の 1 つにすぎません。列の残りの部分にドラッグ アンド プルダウンできる数式があればいいのにと思います。

したがって、ABCABC12345D1 は

_ _ _ 最初の 3 文字は ID です

_ _ _ _ _ 2番目の部分はロケーションタグです

_ _ そして、少なくとも過去はそれがオンかオフかです (それが抽出できなければ、私は生きていける.

今、私は正しい 8 文字か 10 文字を取り、すべてのスペースを取り除こうとしましたが、このデータを引き出す方法についてより明確な方法はありますか?

4

1 に答える 1

0

正規表現?

Function Regex(Cell)
    Dim RE As Object

    Set RE = CreateObject("vbscript.regexp")

    RE.Pattern = "(\w{6}\d{5}\w\d)"
    RE.Global = True
    RE.IgnoreCase = True
    Set Matches = RE.Execute(Cell) 

    For Each res In Matches
        Regex = Regex & "," & res
    Next res
    Regex = Mid(Regex, 2)
End Function

ALT + F11 で VBA エディターを開きます。
Insert -> Module Copy 上記のコードをモジュール ウィンドウに貼り付けます。VBA エディタを閉じます。

Excel シートに書き込み=Regex(A1)、機能を有効にします。

ここに画像の説明を入力

于 2016-11-18T19:40:27.407 に答える