この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ExcelAPIを利用すると無料でExcelやGoogleスプレッドシートで、ネット上から必要なデータを取得できるWeb APIサービスです。
特別なVBAや外部ライブラリは不要で、Excelの関数(WEBSERVICE)Googleスプレッド関数(IMPORTXML)を使用して簡単に連携できます。
なお、ExcelのWEBSERVICE関数 =WEBSERVICE(URL)はExcelの2013バージョン以降の関数です。

ExcelAPIには多くの機能があり、全てを紹介できませんがJSON形式のWebAPIをExcel形式に変換する汎用的なものから、日付時刻に関するもの・郵便番号や住所に関すること、電話番号・漢数字を算用数字に変換など数字に関すること、ひらがなをカタカナに変換など言語に関すること、辞典・翻訳・通貨など、法人では会社住所やインボイスに関することなど、その他・地図などがあります。
使い方についても丁寧に案内がされていてFAQなども充実しています。
Excelの関数などでできることもありますが、ExcelAPIと組み合わせるとより作業を効率化することができます。
1日1万件までのリクエストはFREEプランで利用することができます。また仕事で常時大量のリクエストをおこなう場合には有料プランも用意されています。

=WEBSERVICE(“https://api.excelapi.org/datetime/holiday?date=”&$A1)
A列に日付をB列にWEBSERVICE関数をExcelAPIから、使用例の設定にある[date]を含む数式をコピペします。

B列に関数を入れる時に「Microsoft Excelのセキュリティに関する通知」が表示されますが、ここでは安心できるExcelAPIなので有効にするとWEBSERVICE関数が設定されているセルに祝日名が表示されます。
尚、保存したファイルを開く時にも警告が上部に表示さる場合もあります。
Excelの日付範囲の1900年1月1日~9999年12月31日の祝日に対応しています。なお、日本の祝日は1949年に制定されているため、実際には1949年以降となります。
設定で国コードを指定しないと日本の祝日になりますが、[Country]で国コードの設定を追加すると海外の祝日も取得することができます。
=WEBSERVICE(“https://api.excelapi.org/datetime/holiday?date=”&$A1 &”&country=GB”)
例えばイギリスの国コードGBで設定すると、5月第1月曜日がEarly May bank holiday(イギリスのメーデー)と表示されます。

=WEBSERVICE(“https://api.excelapi.org/datetime/holiday-list?year=”&B$1&”&line=”&$A2)
A列に設定[line]で1年の何番目の祝日か数字を入力しておきます。祝日の数は年によって違いますので、今回は1~25まで用意しておきました。
B1セルに設定[year]で取得したい指定年を、今回は2025年なので2025。

=WEBSERVICE(“https://api.excelapi.org/datetime/holiday?date=”&$B2)
指定年の祝日の日付が取得できたら、C列に上記の「指定の日付が祝日か判定する」を利用して、WEBSERVICE関数で祝日名を表示することができます。

=WEBSERVICE(“https://api.excelapi.org/post/zipcode?address=”&ENCODEURL($A2))
A列の住所から郵便番号を取得します。ExcelのA列を見ると、都道府県だけでなく市町村からや「霞が関」など
住所として判定できる情報があれば郵便番号を取得できる場合もあります。
設定として[address]で住所から郵便番号を取得します。
また、住所など日本語を含む2バイトデータをネット上で扱う場合は、ENCODEURL関数でURLエンコードしてA2セルの住所から郵便番号を取得する必要があります。
ExcelAPIでは日本郵政の公式データを整形して利用しています
多くの住所に対して正確な郵便番号を返しますが、一部の住所(特に北海道など)では郵便番号を返せない場合は空欄が返されます。また、特定のビル固有、事業所固有の郵便番号については、汎用的な郵便番号になってしまう場合があります。

=REPLACE(B2,4,0,”-“)
郵便番号にハイフン追加する方法はいくつかありますが、今回はC2セルにはREPLACE関数(文字列の置換え関数)を利用してみます。
- 通称・俗称で使われている住所で書かない
日本郵政の公式データに沿った住所を書く。 - 丁目・番地まで入れた完全な住所を使う
ExcelAPIは「町域」単位で郵便番号を判断するため、丁目まで書くと精度が向上します。 - 表記の揺れを正す
例)北海道札幌市中央区南1西5 ➡ 北海道札幌市中央区南一条西五丁目 - 数字の漢数字化・省略表記を避ける
データの適合率が上がります。 - 住所を要素に分けて入力
例えばA列(都道府県)、B列(市町村)、C列(町名)と要素を分けて人為的入力ミスを減らす。
=WEBSERVICE(“http://api.excelapi.org/post/zipcode?address=” & ENCODEURL(A2 & B2 & C2)) - 複数住所候補を試す(IFERROR関数で分岐)
丁目付きと丁目無しの2パターンを試し、取得できたほうを使う。
=IFERROR(WEBSERVICE(“http://api.excelapi.org/post/zipcode?address=” & ENCODEURL(A1 & “丁目”)),WEBSERVICE(“http://api.excelapi.org/post/zipcode?address=” & ENCODEURL(A1))) 
ExcelAPIではインターネットに接続している必要がありますが、社内の情報を外部のAPIと送受信することになりますので、セキュリティの観点からも必ず社内の然るべき人や部署の許可をとる必要があります。
また、Web版のExcelではExcelAPIを利用することができなことも理解しておきましょう。
市民パソコン教室長野校では、講座の講習だけでなくパソコンを使っていての困りごとにも対応しています。
お気軽にお問い合わせください。


