【Excel Webサービス活用】住所に対応する郵便番号を取得するTech TIPS

「Microsoft Excel(エクセル)」で管理している住所録に郵便番号を自動入力する方法を紹介しよう。古くは「郵便番号変換ウィザード」と呼ばれるアドインが提供されており、これを使うことで簡単に住所から郵便番号の変換が可能だったが、残念ながら「郵便番号変換ウィザード」の提供は終了してしまった。そこで、Webサービスを利用して住所から郵便番号を自動入力する方法を紹介しよう。

» 2024年09月27日 05時00分 公開
[小林章彦デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象:Excel 2016/2019/2021/365


Excelで住所から郵便番号を自動入力する Excelで住所から郵便番号を自動入力する
Excelで住所から郵便番号を自動入力したいことはないだろうか。古くは「郵便番号変換ウィザード」と呼ばれるアドインが提供されており、これを使うことで簡単に住所から郵便番号の変換が可能だった。しかし、残念ながら「郵便番号変換ウィザード」の提供は終了してしまった。そこで、Webサービスを利用して住所から郵便番号を自動入力する方法を紹介しよう。なお画面の住所データは、「テストデータ・ジェネレータ」で作成したテスト用のダミーデータである。

 「Microsoft Excel(エクセル)」で管理している住所録に郵便番号が抜けているようなケースはないだろうか。案内状などを送付する際、この抜けている郵便番号を埋める作業はかなり面倒だ。そこで、Excelで住所から郵便番号を自動入力する方法を解説する。

Excelで住所から郵便番号を自動入力する

Excelで住所から郵便番号を自動入力する(1) Excelで住所から郵便番号を自動入力する(1)
郵便番号を入力したいセルを選択し、WEBSERVICE関数から成る数式を入力する。
Excelで住所から郵便番号を自動入力する(2) Excelで住所から郵便番号を自動入力する(2)
Webサービスで住所に該当する郵便番号が返される。
Excelで住所から郵便番号を自動入力する(3) Excelで住所から郵便番号を自動入力する(3)
オートフィルで他のセルにコピーする。必要に応じて、郵便番号のセル範囲をコピーして、「値」で貼り付けて数式から数値に変換する。

Excelで住所から郵便番号を自動入力する(解説編)

 顧客や取引先などの名簿をExcelで管理している人も多いのではないだろうか。面倒なのは、名刺などを見て、Excelに入力する作業だ。場合によっては、郵便番号が書かれておらず、日本郵便の「郵便番号検索」ページでいちいち調べなければならず、手間なことからついつい先送りしてしまいがちだ。

 Excel 2010までは、Microsoftから「郵便番号変換ウィザード」と呼ばれるアドインが提供されていたが、すでに配布ならびにサポートが終了しており、Excel 2016以降では利用できない。

 日本郵便が「郵便番号データダウンロード」ページで提供している郵便番号と住所を対応させたCSVファイルを使い、VLOOKUP関数を使うなどすれば、住所から郵便番号を自動入力させることは可能だ。ただ、準備が面倒な上、全国一括のデータは約12万件あるため、VLOOKUP関数では処理にかなり時間がかかってしまう可能性がある。

 実はExcel 2013以降でサポートされているWEBSERVICE関数を使うことで、簡単に住所から郵便番号を割り出すことができる。その方法を解説しよう。

 WEBSERVICE関数は、インターネットやイントラネット上のWebサービスを引数のURLで指定することで、Webサービスが提供するデータを取得するものだ。

=WEBSERVICE(URL)

WEBSERVICE関数の書式

 住所から郵便番号を取得できるWebサービスにはハトライズが提供している「ExcelAPI」がある。ExcelAPIは、1日1万件まで無料のリクエストが可能だ。価格については、「価格表」を参照してほしい。

 ExcelAPIでは、Excelで利用可能なさまざまなWebサービスが提供されているが、住所から郵便番号を取得可能だ。ただ、一部の住所では郵便番号が返らなかったり、事業所固有の郵便番号には対応していなかったりするので注意してほしい。また、住所が数千件と多い場合、郵便番号の取得完了には数十秒という単位で時間がかかる点も要注意だ。

 ExcelAPIで、「C2」セルに入力されている住所から郵便番号を取得するには、以下のように、郵便番号を入力したいセルに書けばよい(ExcelAPIの詳細は、「住所から郵便番号を取得」参照のこと)。ENCODEURL関数は、特定の英数字以外の文字をパーセント記号(%)と16進数に置き換えるものだ。エンコードした住所を「address」値に渡すことで、該当する郵便番号が7桁の数値で返される。

=WEBSERVICE("https://api.excelapi.org/post/zipcode?address="&ENCODEURL(C2))

住所から郵便番号を取得する(1)

郵便番号の書式「000-0000」で表示する

 郵便番号の書式「000-0000」とするには、数式とセルの書式を変更する必要がある。

 まず、郵便番号を入力するセル範囲を選択し、[Ctrl]+[1]キーで[セルの書式設定]ダイアログを開き、[表示形式]タブの分類欄で[その他]−[郵便番号]を選択しておく。

 次に、郵便番号を入力したいセルに、以下の数式を入力すればよい。NUMBERVALUE関数によって、Webサービスから取得した値を数値に変換することで、指定したセルの書式設定が反映されるようになる。

=NUMBERVALUE(WEBSERVICE("https://api.excelapi.org/post/zipcode?address="&ENCODEURL(C2)))

住所から郵便番号を取得する(2)

郵便番号の書式「000-0000」で表示する(1) 郵便番号の書式「000-0000」で表示する(1)
郵便番号を入力するセル範囲を選択し、[セルの書式設定]ダイアログの[表示形式]タブを開き、「分類」欄で[その他]を選択、「種類」欄で[郵便番号]を選択しておく。
郵便番号の書式「000-0000」で表示する(2) 郵便番号の書式「000-0000」で表示する(2)
WEBSERVICE関数を入力する際、NUMBERVALUE関数で返ってきた値を数値に変換するようにしておく。
郵便番号の書式「000-0000」で表示する(3) 郵便番号の書式「000-0000」で表示する(3)
オートフィルで他のセルにコピーする。必要に応じて、郵便番号のセル範囲をコピーして、「値」で貼り付けて数式から数値に変換する。郵便番号の書式に設定してあるので、全て「000-0000」形式で表示される。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。