住所データから郵便番号を自動で入力できれば、手作業での入力ミスや作業時間を大幅に削減できます。
特に企業で顧客リストや配送先リストを作成する場合、数百〜数千件の住所に郵便番号を付与する作業はよく発生します。
本記事では、ExcelのVLOOKUP関数を使って住所から郵便番号を自動取得する方法を、初心者でも再現できる形で詳しく解説します。
あわせて、日本郵便の公式データを使った住所マスタの作成方法や、部分一致対応のコツも紹介します。
目次
✅ 基本の考え方:VLOOKUPで住所から郵便番号を検索
VLOOKUP関数は、指定した検索値を表の左端列から探し、対応する列の値を返す関数です。
「住所 → 郵便番号」に変換する場合は、住所を検索キーとして郵便番号マスタから番号を引き当てます。
・VLOOKUPの基本構文
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
- 検索値:探したい住所(例:A2セル)
- 範囲:住所と郵便番号を含むマスタ範囲
- 列番号:郵便番号列が範囲の何列目か
- 検索方法:完全一致の場合は
FALSE
参考:【Excel】ISERRORとVLOOKUPを使った〇×判定方法|ステップ解説と実務活用術
✅ ステップ1:郵便番号マスタの準備
1. 日本郵便から最新データを取得
日本郵便公式サイトの「郵便番号データダウンロード」ページからCSVファイルを入手します。
全国版または必要な都道府県版を選び、ZIP形式でダウンロードします。
- URL:日本郵便 郵便番号データ
2. CSVファイルをExcelで開く
ダウンロードしたZIPを解凍し、CSVファイルをExcelで開きます。
必要な列だけを抽出し、「住所」と「郵便番号」の2列に整理しましょう。
例:
住所 | 郵便番号 |
---|---|
東京都千代田区千代田 | 1000001 |
東京都港区芝公園 | 1050011 |
✅ ステップ2:住所リストとマスタを別シートに配置
効率的に管理するために、以下のようにシートを分けるのがおすすめです。
- 住所リストシート(例:「住所データ」)
- A列:住所
- B列:郵便番号(VLOOKUP結果を表示)
- マスタシート(例:「住所マスタ」)
- A列:住所
- B列:郵便番号
参考:【Excel】VLOOKUP関数を別シートで使う方法とは?|構文・設定手順・実務活用を徹底解説!
✅ ステップ3:VLOOKUP関数を設定
基本の数式
住所データのB2セルに次の数式を入力します。
=VLOOKUP(A2, 住所マスタ!A:B, 2, FALSE)
A2
→ 検索する住所住所マスタ!A:B
→ マスタの範囲2
→ 郵便番号が範囲の2列目FALSE
→ 完全一致検索
これで、完全一致する住所に対応する郵便番号が表示されます。
✅ 部分一致に対応する方法
現場では、住所に番地や建物名が含まれていることが多く、完全一致ではマッチしない場合があります。
例:
- リスト:東京都千代田区千代田1-1 グランドビル
- マスタ:東京都千代田区千代田
この場合、通常のVLOOKUPでは一致せず#N/A
になります。
部分一致式(INDEX + MATCH + SEARCH)
=INDEX(住所マスタ!B:B, MATCH(TRUE, ISNUMBER(SEARCH(住所マスタ!A:A, A2)), 0))
この式は、住所マスタの住所が検索対象セル内に含まれているかを調べ、最初に一致した郵便番号を返します。
参考:【Excel】IFNA関数で複数条件を処理する方法|VLOOKUP・INDEX/MATCH・IFとの組み合わせでExcel作業を効率化
✅ データ整形で検索精度を上げる
郵便番号検索がうまくいかない原因は、多くの場合「住所表記のゆらぎ」です。
精度を上げるために、次の関数で整形します。
- 全角→半角:
=ASC(セル)
- 空白削除:
=TRIM(セル)
- 改行削除:
=SUBSTITUTE(セル, CHAR(10), "")
特に日本郵便データと社内住所リストでは、丁目や番地の書き方が異なることが多いため、統一ルールを決めると良いです。
■ 大量データ処理のコツ
- マスタ範囲をテーブル化(Ctrl+T)しておくと、データ更新時に範囲を自動調整可能
- Power Queryを使えば、VLOOKUP不要で結合処理ができ、数万件の住所も高速処理可能
- 郵便番号データを定期更新(毎月1日など)すると最新の情報を保てる
■ トラブルシューティング
症状 | 対策 |
---|---|
#N/A が表示される | 住所の表記ゆらぎを整形/部分一致式を利用 |
関数が遅い | 範囲を最小限に絞る/Power Queryに移行 |
数字が「100-0001」と表示されない | セルの表示形式を「文字列」に設定 |
マスタ更新が反映されない | 範囲参照をテーブル名に変更 |
✅ まとめ
方法 | 特徴 |
---|---|
VLOOKUP(完全一致) | 高速・簡単だが住所表記の違いに弱い |
INDEX+MATCH(部分一致) | 表記ゆらぎに対応できるが少し複雑 |
Power Query | 大量データや定期更新に強い |
VLOOKUPはシンプルでわかりやすく、少量〜中量データの住所→郵便番号変換に最適です。
ただし、住所の表記ゆらぎやデータ量によっては、部分一致やPower Queryとの併用が効果的です。