「最新国勢調査結果」 → 「e-Stat API」 → 「Googleスプレッド」 → 「Google Data Portal」

# e-Statで準備開始

[「Power BI Desktop」](https://qiita.com/tex_owleyes/items/3f25dd94d1cac3dbd755)と[「Tableau Public」](https://qiita.com/tex_owleyes/items/3f25dd94d1cac3dbd755)で「令和2年国勢調査」の集計値結果を取得しました。
最後に「Google Data Portal」で取り込みます。
今回は、「e-Stat API」を利用し「Googleスプレッドシート」経由でインポートします。

「Tableau Public」で、使ったデータのように、縦長のテーブルを用意します。
下記画面はデフォルトの状態です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/ee481805-c767-3061-eca7-18d9f33b6102.png)

レイアウト設定で行にフィールドを集めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/cd23ae08-9651-1b25-d75f-d399e680a288.png)

以下のような表示に切り替わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/d39e526c-019c-59dd-bf55-faba6e3315af.png)

# APIからスプレッドシートへ

APIを利用してクエリーを取得します。
形式は「CSV」にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/6d174b26-6090-2f72-c148-a2036b8ea9ab.png)

e-Statのマイページから「アプリケーションID」を取得し、上記クエリーに付与してGoogleスプレッドシートにインポートします。
Googleスプレッドシートで使える関数「IMPORTDATA」を使いしてクエリーを実行します。

~~~
=IMPORTDATA("http://api.e-stat.go.jp/rest/3.0/app/getSimpleStatsData?***
~~~

実行した結果です。
基本情報の下に数値データが収録されています。
後ほどGoogle Data Portalで数値データ部分以外を外す設定をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/1ff677b0-793d-7d3b-b1d2-dfa4a3d1448e.png)

Google Data Portalでスプレッドシートをインポートします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/a93ef9e4-a665-bfb3-a846-28358e3a9218.png)

# Google Data Portal開始

インポートします。
「先頭行をヘッダーとして使用する」「非表示のセルやフィルタ処理されたセルを含める」のチェックボックスを外していますが、今回は「先頭行をヘッダーとして使用する」だけ外せば大丈夫でした。
「先頭行をヘッダーとして使用する」をオンにすると、先頭行が空白となっている列を無視してしまいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/113345ef-4cdf-8542-6cc4-d76fc840e732.png)

***
>ちなみに、上記2つのチェックボックスの下のフィールドでセル範囲を指定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/51f8a0de-1a50-05b4-8eb1-0cd1c6cd9942.png)
とすれば、使うデータだけを取り込めます。
今回は、セル範囲を使ってません。
フィルタ機能を使って外しています（下記参照）。
***

Google Data Portalに取り込んで表形式でデータを並べた状態です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/6afa6435-8259-3298-2b5a-ab050ee3f802.png)

# フィルタ使用

「null」を外したいので「フィルタ」を使います。
>(列名は表用に変更したりしていますが、この時点では元のフィールド名の変更は行なっていません。このため、自動で付いたアルファベットの列名を使ってます。後でフィールド名を変更しています）

J（人口数）列のnullを外すフィルタ設定をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/969e91aa-c44f-c82b-bb13-b0758bd1f9ee.png)

フィルタ適用後の状態です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/e4eea6d6-9b1a-f1b0-3d4c-5afabe6510ab.png)

# 日付データを関数で整備

時系列データとして扱うために、時間軸（H列）を日付型に変更します。
取り込んだ状態のままでは文字列になっています。
もっと効率のいい方法があるかもしれませんが、思いつかなかったので今回は以下のやり方で変換しました。
関数を使ったフィールドを追加します。
まず、テキストの結合「CONCAT」を使い、「YYYY年MM月dd日」形式のデータにします。
今回は「YYYY年1月1日」としました。

~~~
CONCAT(H, "1月1日")
~~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/74d9823f-41be-4704-6498-7ef74e731947.png)

まだテキスト型のままなので、「TODATE」関数を使い日付型に変更します。
（フィールドを直接指定して変換する機能がうまく適用できなかったので関数を使いました）
"%Y年%m月%d日"というスタイルの文字列を"%Y/%m/%d"という形式の日付型に変更しています。

~~~
TODATE(YYYY,"%Y年%m月%d日","%Y/%m/%d")
~~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/84a582da-6b03-ed31-6d1f-9488ea2ef00a.png)

***
>ここまでアルファベット名の列を使用していましたが、ここで元のフィールド設定画面に戻り、名称を変更しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/2befdd82-3564-bff7-30a3-00daaf72544f.png)
***

# 可視化

Google Data Portalで、x軸を時間軸としたグラフを作成しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/e345fba5-3fd4-85c8-b9e8-01785bcb5b57.png)

「総数」「男性」「女性」の各データが1列に入っているので、「総数」だけを指定できるようにリッストボックスのコントロールを追加しました。
同様に「人口集中地区」「人口集中地区以外」「全国」を外すリストボックスを配置しました。
ツリーマップも描き、折れ線グラフと連動できるようにもしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/6d24807e-2e1b-cc06-35fa-7909a6052efc.png)

例えば、「北海道」をクリックすれば、「北海道」の人口推移（折れ線グラフ）のみ表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/b8be8554-c90a-112b-5dcb-2e373a0ebce7.png)

**了**