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:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得