メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで住所リストから郵便番号を抽出するにはどうすればよいですか?

Author Sun Last modified

Excelで顧客情報を管理する際、各エントリに街路の詳細と郵便番号(ZIPコード)が含まれている完全な住所リストを持つことが一般的です。例えば、メーリングリスト、地域分析、またはデータフォーマットのためにこれらの住所から郵便番号だけを分離して抽出する必要がある場合、手作業で一つずつ分離するのは非常に面倒でミスも多くなりがちです。特に大規模なデータセットではそうです。幸いにも、Excelには複数の郵便番号を迅速かつ効率的に抽出できる実用的な方法があります。この記事では、Excelの数式やVBAマクロを使用して住所から郵便番号を抽出するためのステップバイステップの手順を紹介します。

Excelで数式を使って郵便番号を抽出する

Excelでユーザー定義関数を使用して郵便番号を抽出する


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が自動的に各住所の郵便番号を抽出します。

a screenshot of extracting postcode from address list with formula

ヒント: この数式は、郵便番号が住所文字列の最後のスペースの後の最後の項目であることを前提としています。もしあなたの住所が異なる構造、例えば郵便番号が途中にあったり、カンマで区切られていたりする場合、この数式は正しい結果を返さないかもしれません。この方法を国際郵便番号やカスタムフォーマットに拡張するには、異なるまたはより高度な数式アプローチが必要になるかもしれません。または、以下のVBAソリューションを試してください。


Excelでユーザー定義関数を使用して郵便番号を抽出する

住所データがより複雑で不規則、またはさまざまな形式や文字列内の位置に郵便番号が含まれている場合、VBAマクロを使用することでより柔軟な抽出オプションを提供できます。この自動化された方法は、住所の列全体を迅速に処理し、郵便番号のみを抽出して返すため、大幅な時間短縮と手動操作の削減を実現します。

 extract various postcodes from address list

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エディタウィンドウでツール > 参照設定 を選択します。スクリーンショットをご覧ください:

click Tools > References

4. 参照設定ダイアログボックスで、Microsoft VBScript Regular Expressions 5.5にチェックを入れ、OKをクリックします。

check Microsoft VBScript Regular Expressions 5.5

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

tye a formula to get the result

ヒント: このコードを使用すると、わずか数秒で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はお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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