見出し画像

Power QueryをもちいたNoCodeで行う貿易統計の自動ダウンロード

数か月かけてpythonを学んで、e-Statという政府の統計サイトのAPI機能を使って、データを自動ダウンロードしてExcelで解析するプログラムを書いた。

やっと完成して、さあ運用だと思った矢先、それって似たようなことをExcelのpower queryの機能でもできることに気が付いてしまった。

自分がやりたかったことがコードを書くことなくここまで簡単にできることに驚いたので、そのやり方を備忘録がてら残す。

今回は、政府が公開している普通貿易統計という統計データを用いて、コーヒーがどの港を経由してどの国へ輸出されているかをExcelのPower Query機能を用いて調べてみよう。

0)はじめに

日本政府は各々の府庁で様々な統計データを公開している。国剤調査や雇用動向調査、景気予測調査などの調査や統計は聞いたことがあるかもしれない。

その統計データは各府庁のHPから閲覧することもできるのが、e-Statはその統計データを府庁を横断して検索できるようになっているポータルサイトだ。

また、ログインすると横断的な検索だけでなく、APIという機能を用いて機械的に統計データをダウンロードすることもできる。今回、このAPI機能を用いて機械的にe-StatからデータをダウンロードしてExcelで解析できるようにする。

通常、このAPIの利用にはプログラムを組んだりする必要があるが、ExcelのPowerQuery機能を使うとコードを書く必要なくこれらのAPI機能からデータを自動でダウンロードしてくれるようになる。


1)e-Stat のアプリケーションIDの発行

まずは、e-Statに登録してアプリケーションIDを発行する。ログインとアプリケーションIDの発行は利用ガイドを参照したり、下記サイトの紹介などを参考にしてほしい。

ここでアプリケーションIDを発行すると20桁程度のアプリケーションIDをもらうことができる。ここまででe-Statを用いる準備ができた。

※アプリケーションIDは悪用される恐れがあるため、公開してはいけない。



2)統計表IDの取得

はじめに行うのは、どの統計表からデータをダウンロードするかを決めることだ。

今回のコーヒーの国別、税関別の輸出量が知りたい場合は、必要な統計データは貿易統計である。特に国別、税関別分かれているものが必要となる。この統計データは「貿易統計_税関別 税関別概況品別国別表 輸出」が該当する。この統計データの正式名称はe-Statの検索などから調べることができる。

画像9

▲普通貿易統計の中にも統計の種類がいくつかある。目的にあった統計データの正式名称を控えておく。

e-StatのAPI機能を用いたダウンロードでは、統計表名ではなく、統計表にふられた統計表IDが必要になる。IDを指定すれば「貿易統計_税関別 税関別概況品別国別表 輸出」をダウンロードできるので、これに対応する統計表IDを調べる必要がある。

統計表IDの一覧は次のページから取得できる(※アプリケーションIDが必要)。

画像9

アプリケーションIDと取得したい「貿易統計_税関別 税関別概況品別国別表 輸出」を検索キーワードに入れている。この部分は各自自分の知りたいデータを入れていけばよい。

「表示」を押すと、次のような文字の一覧が現れるはずだ。

画像10

一覧はXML形式でわかりずらいが、<RESULT_INF>と書かれたタグ以降に▽<TABLE_INF id=>と書かれたデータがぶら下っている。

<TITLE>のタグをみると「確定 税関別概況品別国別表 (輸出 1-12月:確定) 2001年~2002年」となっていて、貿易統計_税関別 税関別概況品別国別表 輸出の場合は2年ごとにデータが区切られていることが分かる。今回の場合、もっとも古いデータが1991年-1992年で、最新は2021年までだ。

最終的に使いたい統計表IDは<TABLE_INF id=>と書かれている部分に該当するので、<TITLE>のタグがある中から、知りたい年度の<TABLE_INF id=>を参照する。

今回は2019年-2020年のデータを参照してみよう。
<TABLE_INF id="0003334000">となる。

3)HSコードの取得

このままでもデータのダウンロードに進めるのだが、普通貿易統計の場合、このままでは2019-2020年のすべての貿易データをダウンロードすることになってしまい膨大なデータになってしまう。そこで、調べたいコーヒーに限ってデータをダウンロードするようにしてダウンロードするデータを極力小さくしよう。

コーヒーに関する貿易データを取得するには、HSコードと呼ばれる貿易品の品目の分類に使用されるコードを使用する。

HSコードは次のページから検索できる。

コーヒーで調べてみると次のコードが該当しそうだ。

画像6

ここによるとコーヒーのHSコードは0901.21とある。ダウンロードの際に必要なHSコードは9桁固定でカンマやハイフンは不要なので、カンマを除いて0で右埋めして、”090121000”が必要なHSコードとなる。


3)Excel power queryの準備

ここまでで、ダウンロードに必要なデータの準備ができた。

以下、メモ帳などに次のデータを記録してExcelを立ち上げて、PowerQuery機能を使ってExcelにデータを取り込んでいこう。

アプリケーションID:<自分のアプリケーションID>
統計表ID:0003334000
HSコード:090121000

(以下Excel2016で説明しています)

画像4

データ>新しいクエリ>その他のデータソースから>Webから、を選択する。

画像5

http://api.e-stat.go.jp/rest/2.1/app/getSimpleStatsData?
appId=<アプリケーションID>&
statsDataId=<統計表ID>&
cdCat01=<HSコード>

ポップアップウインドウから詳細設定を選択して、「URL部分」に上記のように入力する。ボックスが足りない場合は「パーツの追加」を適宜押して、ボックスを追加する。

<より詳しい解説>
http://api.e-stat.go.jp/rest/2.1/app/getSimpleStatsData?部分はダウンロードするデータの形式などを指定している。今回はExcelと相性の良いcsv形式をして指定している。
以降、statDataIdで統計表IDを指定して、cdCat01でHSコードを指定している。その他、例えば貿易国を中国に限定したい場合は、このURLの後ろに&area_code=50105(50105は中国の国コード)と入れることで、中国に限定したデータを入手できる。

詳しい仕様は公式のAPI仕様を参照する必要がある。

なお、このURLをchromeのアドレスバーにベタ打ちしても同様のデータを得ることができる。はじめはなかなかコツをつかむのが難しいので、chromeで色々とURLを試してみることをお勧めする。


画像6

OKボタンを押すとしばらくして次のような一覧が出てくる。「区切り記号」が「コンマ」になっていることを確認して「データの変換」を押す。

次のようなウインドウが現れる。

画像7

はじめの数行はメタデータと言って、このデータがどのようなデータなのかを説明する情報が入っている。今回は不要なのでメタデータは消す。普通貿易統計の場合は、43行目までがメタデータである。
適当な行を選択したのち、リボンの「行の削除>上位行の削除」を選択して、43行目までを削除する。

画像8

このままだと、一行目が分類名を指すはずが、データとして扱われているので、最後にリボンの「1行目をヘッダーとして使用」を有効にすると、1行目がヘッダーに変換されてきれいな一覧が得られる。

画像10

リボンの「閉じて読み込む」を押すと、以上のデータがExcel上にテーブルとして読み込まれる。

あとは、これをピボットテーブルなどで好きに解析すればいいのだが、実はe-Statからダウンロードできるデータの形式がExcelのピボット解析には不向きなデータ構造をしているので、Excelで解析するにはひと工夫がいる。


いいなと思ったら応援しよう!