Excelで住所リストから郵便番号を抽出するにはどうすればよいですか?
Excelで顧客情報を管理する際、各エントリに街路の詳細と郵便番号(ZIPコード)が含まれている完全な住所リストを持つことが一般的です。例えば、メーリングリスト、地域分析、またはデータフォーマットのためにこれらの住所から郵便番号だけを分離して抽出する必要がある場合、手作業で一つずつ分離するのは非常に面倒でミスも多くなりがちです。特に大規模なデータセットではそうです。幸いにも、Excelには複数の郵便番号を迅速かつ効率的に抽出できる実用的な方法があります。この記事では、Excelの数式やVBAマクロを使用して住所から郵便番号を抽出するためのステップバイステップの手順を紹介します。
Excelで数式を使って郵便番号を抽出する
多くの一般的な住所リストでは、郵便番号は住所文字列の最後に位置し、8文字を超えることはありません。この方法は、リスト内のすべての住所が一貫した形式に従っており、郵便番号がスペースで区切られた各住所の最後の要素として表示される場合に最も適しています。
数式を使用して郵便番号をすばやく抽出するには、次の手順に従います:
1. 郵便番号を表示したい空白のセルを選択します(例えば、住所がA1にある場合はB1)。次の数式を入力します:
=MID(A1,FIND("zzz",SUBSTITUTE(A1," ","zzz",SUMPRODUCT(1*((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))=" "))-1))+1,LEN(A1))
2. Enterキーを押します。A1の住所から郵便番号が選択したセルに表示されます。
3. この数式を他の住所に適用するには、数式のあるセルを選択し、列全体にわたってフィルハンドルをドラッグして全ての住所行をカバーすると、Excelが自動的に各住所の郵便番号を抽出します。
ヒント: この数式は、郵便番号が住所文字列の最後のスペースの後の最後の項目であることを前提としています。もしあなたの住所が異なる構造、例えば郵便番号が途中にあったり、カンマで区切られていたりする場合、この数式は正しい結果を返さないかもしれません。この方法を国際郵便番号やカスタムフォーマットに拡張するには、異なるまたはより高度な数式アプローチが必要になるかもしれません。または、以下のVBAソリューションを試してください。
Excelでユーザー定義関数を使用して郵便番号を抽出する
住所データがより複雑で不規則、またはさまざまな形式や文字列内の位置に郵便番号が含まれている場合、VBAマクロを使用することでより柔軟な抽出オプションを提供できます。この自動化された方法は、住所の列全体を迅速に処理し、郵便番号のみを抽出して返すため、大幅な時間短縮と手動操作の削減を実現します。
1. Alt + F11を押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。
2. VBAウィンドウで、挿入 > モジュールをクリックして新しいモジュールを作成します。次のVBAコードをコピーしてモジュールウィンドウに貼り付けます:
Public Function ExtractPostcode(text As String) As String
Dim reg As New RegExp
Dim m As MatchCollection
reg.Pattern = "\b([A-Z]{1,2}\d{1,2}[A-Z]?\s*\d[A-Z]{2}|\d{5}(?:-\d{4})?|\d{6})\b"
reg.IgnoreCase = True
reg.Global = False
If reg.Test(text) Then
Set m = reg.Execute(text)
ExtractPostcode = m(0).Value
Else
ExtractPostcode = ""
End If
End Function
3. コードを貼り付けた後、VBAエディタウィンドウでツール > 参照設定 を選択します。スクリーンショットをご覧ください:
4. 参照設定ダイアログボックスで、Microsoft VBScript Regular Expressions 5.5にチェックを入れ、OKをクリックします。
5. ワークシートに戻り、この数式を入力します: =ExtractPostcode(A2)、フィルハンドルを他のセルにドラッグします。これですべての郵便番号が一度に表示されます。スクリーンショットをご覧ください:
ヒント: このコードを使用すると、わずか数秒でExcel内の任意の国や地域から郵便番号を自動的に抽出することができます。正規表現を対象エリアの郵便番号ルールに合わせて微調整するだけで、英国の「SW1A 1AA」、米国の「12345-6789」、中国の「100000」などの異なるフォーマットに素早く適応でき、データクリーニングおよび分析の効率を大幅に向上させることができます。
関連記事:
最高のオフィス生産性ツール
🤖 | Kutools AI Aide:データ分析を革新:インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析してグラフを生成 | Kutools Functions を呼び出す… |
人気機能:重複の検索・ハイライト・マーキング | 空白行を削除 | データを失わず列やセルを統合 | 丸める ... | |
スーパーLOOKUP:複数条件VLOOKUP | 複数値VLOOKUP | 複数シートの検索 | ファジーマッチ .... | |
高度なドロップダウンリスト:すばやくドロップダウンリストを作成 | 依存型ドロップダウンリスト | 複数選択ドロップダウンリスト .... | |
列の管理:特定数の列を追加 | 列を移動 | 非表示列の表示状態を切り替え | 範囲と列の比較 ... | |
注目機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブック&ワークシートの管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リスト送信で電子メールを送信 | スーパーフィルター | 特殊フィルタ(太字/斜体/取り消し線でフィルタ...) | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など) | 50 種以上のグラフ タイプ(ガントチャートなど) | 40を超える実用的な 数式(誕生日に基づいて年齢を計算する、など) | 19種の 挿入ツール(QRコードの挿入、パスから画像の挿入など) | 12種類の 変換ツール(単語に変換する、通貨変換など) | 7つの 結合&分割ツール(高度な行のマージ、セルの分割など) | ...さらに多数 |
Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...
Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます
- Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
- 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
- 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!