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 エディターウィンドウでツール>参照設定を選択してください。スクリーンショットをご参照ください。
![[ツール] > [参照設定] をクリック](http://cdn.extendoffice.com/images/stories/doc-excel/extract-postcode/doc-extract-postcode-3.webp)
4.参照設定ダイアログボックスで、Microsoft VBScript Regular Expressions 5.5にチェックを入れて、OKをクリックします。

5.ワークシートに戻って、次の数式を入力してください:=ExtractPostcode(A2)。フィルハンドルを下にドラッグすれば、すべての郵便番号が一括で表示されます。スクリーンショットをご参照ください。

ヒント:このコードを使えば、対象地域の郵便番号ルールに合わせて正規表現を少し調整するだけで、英国の「SW1A 1AA」、米国の「12345-6789」、中国の「100000」など、世界各国・地域の郵便番号をExcel で数秒で自動抽出できます。データクリーニングや分析の効率が大幅にアップします!
関連記事:
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得