「StiLL」Excel情報455 関数--郵便番号を住所に変換
【テーマ】 セルに入力した郵便番号を、WEBサービスを利用して住所に変換する数式をご紹介します。 【方法】 郵便番号から住所を検索するWeb API 「郵便番号検索API」 からWEB関数を使用し、住所のデータを取得します。 【参考】 入力された郵便番号が存在しない場合は数式がエラーになります。エラーを表示しないようにするには、IFERROR関数を使用します。
セルに入力した郵便番号を、WEBサービスを利用して住所に変換する数式をご紹介します。
今回の方法はWEBサービスをExcelで利用するためにWEB関数を使用します。
WEB関数についての詳細や使い方はバックナンバーでご紹介していますので、合わせてご参照ください。
【バックナンバー 437】関数--WEBサービスをExcelで利用する関数「WEB関数」
【バックナンバー 438】関数--WEBサービスをExcelで利用する関数「WEB関数」A
※WEB関数はExcel2013から追加された機能です。
   Excel2010以前のバージョンではご利用できませんのでご注意ください。
■ 郵便番号を住所に変換する数式の作成方法
    郵便番号から住所を検索するWeb API 「郵便番号検索API」 を利用して、
    指定した郵便番号のデータを抽出することができます。
           ※郵便番号検索APIについてのご利用方法については、郵便番号検索APIのサイトをご参照ください。
【郵便番号検索API(外部サイト)】  http://zip.cgis.biz/
           ※本記述はExcelの機能紹介であり、Web APIの機能を保障するものではありません。
Web APIをご利用になる際はご注意ください。
    まずは WEB関数の WEBSERVICE関数 を使用して、郵便番号検索APIから情報を取得します。
    下の図のように、B2セルに入力された郵便番号の情報を取得する例でご紹介します。
            数式@: =WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2)
    上記の数式を入力すると、下の図のような郵便番号の情報を郵便番号検索APIから取得できます。
    このXML形式の情報の中から、FILTERXML関数 を使用して、情報を取得します。
    先程の数式@をFILTERXML関数の第1引数に設定し、第2引数には取得したい項目を示す条件を
    次のように設定します。
    都道府県を取得する数式:
=FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
 
"/ZIP_result/ADDRESS_value/value[@state]/@state")
    市区町村を取得する数式:
=FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
 
"/ZIP_result/ADDRESS_value/value[@city]/@city")
    住所を取得する数式:
=FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
 
"/ZIP_result/ADDRESS_value/value[@address]/@address")
    上の3つの数式の結果を連結すると、郵便番号を住所に変換する数式の出来上がりです。
=FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
  "/ZIP_result/ADDRESS_value/value[@state]/@state")&
  FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
  "/ZIP_result/ADDRESS_value/value[@city]/@city")
&
  FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
  "/ZIP_result/ADDRESS_value/value[@address]/@address")
     また、入力された郵便番号が存在しない場合は数式がエラーになります。
     エラーを表示しないようにするには、IFERROR関数を使用します。
=IFERROR(
  FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
  "/ZIP_result/ADDRESS_value/value[@state]/@state")&
  FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
  "/ZIP_result/ADDRESS_value/value[@city]/@city")&
  FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" &B2),
  "/ZIP_result/ADDRESS_value/value[@address]/@address")
 
,"見つかりません")
  ※ ご注意ください
      郵便番号は7ケタの数字でないと住所に変換できません。
      北海道などゼロ始まりの郵便番号の場合は先頭のゼロがついている必要がありますので、
      郵便番号のセルの表示形式を [文字列] にするか、郵便番号の先頭にシングルクォーテーションを付けて
      入力してください。
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます