残業を減らす!Officeテクニック

入力済み郵便番号を住所に変換! XLOOKUP関数&郵便局のデータベースを使って効率化

年賀状などの住所録管理などにも便利

郵便番号→住所変換に郵便局のデータベースを活用する

 郵便番号に対応する住所を自動入力できないの? よく質問されます。以前のバージョンのExcelでは「郵便番号変換ウィザード」というアドインが提供されており、画面の指示に従えば、郵便番号→住所の変換が手軽でした。しかし、本稿執筆時点でアドインの提供は終了しており、困っている人が多いようです。

 IMEの「郵便番号辞書」を有効にすると、「101-0051」といった郵便番号から住所へ変換できるのですが、効率の悪い印象が持たれます。入力済みの郵便番号から簡単に住所変換したい! そんな人に今回のひと工夫を紹介します。

郵便番号データを用意する

 日本全国の郵便番号データは、郵便局が公開しており、CSV形式のファイルを無料でダウンロード可能です。まずは、郵便番号データダウンロードのWebページから入手しましょう。

郵便局のWebページから郵便番号のデータをダウンロード可能。ここでは、[読み仮名データの促音・拗音を小書きで表記するもの]を選択した
全国の郵便番号データをダウンロードする。[全国一括]をクリックする

 ダウンロードしたZIPファイルには「KEN_ALL.CSV」というCSV形式のファイルが含まれています。任意のフォルダーにコピーしておきましょう。ファイルを開くと、C列にハイフンなしの郵便番号が入力されており、G~I列に住所が入力されていることがわかります。

ダウンロードした郵便番号データのCSVファイル。列幅を調整してある。C列にハイフンなしの郵便番号(①)が入力されており、G列に都道府県(②)、H列に市区町村(③)、I列に住所(④)が入力されていることがわかる

 ハイフンなしの郵便番号が検索できれば、対応する住所を見つけられますよね。VLOOKUP関数を使っても構いませんが、今回はXLOOKUP関数で郵便番号から住所を取り出します。

関数入力前の準備

 ここでは以下のような住所録ファイルに入力された郵便番号から住所を自動入力していきます。郵便番号はハイフン付きで入力済み、住所用の1列が用意してあります。しかし、このままではXLOOKUP関数を組み込めません。先ほどダウンロードした郵便番号データのファイルと表の構造を揃える必要があるので、バックアップも兼ねて、元のワークシートをコピーして作業用のワークシートを用意しましょう。

今回利用する住所録。ハイフン付きの郵便番号が入力されており、住所用に空白の1列が用意されている
作業用に住所録のワークシートをコピーしておく

 また、別ファイルの郵便番号データを参照すると、リンク切れなどが発生する可能性があるので、ここでは「KEN_ALL.CSV」のデータもコピーします。

「KEN_ALL.CSV」のシート見出しを右クリックして[移動またはコピー]をクリックする
[移動またはコピー]ダイアログボックスが表示された。[移動先ブック名]に住所録ファイルを指定する。ここでは、末尾へコピーする
「KEN_ALL.CSV」のデータを住所録へコピーした状態

 前述の通り、郵便番号データの形式は、ハイフンなしの郵便番号、都道府県、市区町村、住所の3列でした。作業用のシートに切り替えて、表の形式を整えましょう。郵便番号のハイフンを取り除くには「フラッシュフィル」を使います。

作業用のワークシートで操作する。[郵便番号(ハイフンなし)][都道府県][市区町村]の列を追加した。セルE2にハイフンなしの郵便番号を入力しておく。[データ]タブの[フラッシュフィル]をクリックする
ハイフンなしの郵便番号を取得できた

XLOOKUP関数を入力する

 準備が整ったら、あとはXLOOKUP関数を入力するだけです。郵便番号データは行数が多いので、引数[検索範囲]と[戻り範囲]に指定するセル範囲は列全体で指定するのがスマートです。なお、XLOOKUP関数はスピルに対応しているため、[戻り範囲]のセル範囲に複数列を指定することで結果をまとめて取得できます。

セルF2に「=XLOOKUP(E2,」と入力し、そのまま[KENALL]のシート見出しをクリックする
[KEN_ALL]のC列の列見出しをクリックする
「,」を入力して、G~I列の列見出しをドラッグする。「=XLOOKUP(E2,KEN_ALL!C:C,KEN_ALL!G:I」と入力されていることを確認したら[Enter]キーを押す
郵便番号に対応する都道府県、市区町村、住所を取得できた
セルF2の数式をオートフィルでコピーすれば、残りの市区町村と住所も自動入力される

 あとは取得した都道府県、市区町村、住所を連結して元のワークシートに「値」として貼り付け、番地を入力すれば完成ですね。郵便番号から住所への変換作業にお役立てください。