1

私は、会社が協力しているビジネスに関する多くの情報を含む大きなExcelファイルを使用しています。別の大きなExcelファイルをインポートしたところ、形式が異なっていました。すでにある大きなファイルには、住所、州、郵便番号が別々の列にあり、それぞれ2つの間隔で次のようになっています。

ここに画像の説明を入力してください

私はこのスプレッドシートを作成しなかった、さもなければそのような列を配置しなかったでしょう、しかしそれはそれで働く女性がそれを好きな方法です。

問題は、インポートしたシートの都市、州、郵便番号の情報がすべて同じセルに次のように含まれていることです。

ニューヨーク州トロールビル12345

新しい州の99%がすべて同じ州であり、すべてをすばやく見つけて置き換えることができたので、私はすでに州を超えています。私は今これを残しています

トロールビル12345

その郵便番号を4列右の適切なセルに移動したいと思います。基本的な正規表現を作成しましたが、Excel-vbaを何年も使用していないため、あまり詳しくありませんが、これが私が思いついたものです。一致するもの(配列にしたもの)を適切な列に出力するようにvbaに指示する方法がわかりません。これは私がこれまでに持っているものです:

Function findZipCode(zipCode)
     Dim regEx As New VBScript_RegExp_55.RegExp
     Dim matches, s
     regEx.Pattern = "\s\d{5}\W"
     regEx.Global = True
     s = ""
     If regEx.Test(zipCode) Then
         Set matches = regEx.Execute(zipCode)
         For Each Match In matches
             s = s & Match.Value

         Next
         findZipCode = s
     Else
         findZipCode = ""
     End If
End Function

何を追加する必要がありますか?これを行うためのより簡単な方法があれば、私も別の方法を受け入れます。

アドバイスをよろしくお願いします

4

1 に答える 1

2

内蔵のExcelワークシート関数を使用できますか?

これをターゲット列に配置する=RIGHT(A2,5)と、数値の場合は文字列の右端の5文字がキャプチャされます。これは、すべての値のデータ値の最後に5桁の郵便番号がある場合に機能します。

IF(ISNUMBER(VALUE(RIGHT(A2,5))),RIGHT(A2,5),"")または、プロセスに検証レイヤーを追加するなどの条件でラップすることもできます。

また、データがコンマ(またはスペース)で区切られている場合に自動的にこれを行うことができるオプションがあることをご存知でしたかData ribbon->Text to columns

于 2013-02-25T20:44:40.770 に答える