コロナウイルス支援対策オープンデータをGoogle Spreadsheetで配信してます

世界各国の政府が様々な統計データや収集したデータを公開するオープンデータの取り組みは、日本でも行われています。今までオープンと称してアップされてるものが「Excelデータ」だの挙げ句には二次利用が厳しい「PDF形式」なんてもので出していて、やる気あるのかなと思ってましたが、e-Statなどの統計情報はAPIで提供しているので、プログラムからの二次利用が非常にしやすい環境が整いつつあります。(未だ地方自治体はExcelとか。。。)

コロナウイルス関連として、民間支援情報ナビと政府が協力しコロナウイルス関連の情報も提供するというニュース。該当のサイトはこちらのサイト

難易度:[star rating="1"]

Google Spreadsheetで提供する意味

この取組は非常に良い取り組みです。Google Spreadsheetで提供ということは、API用のサーバを用意する必要もなく、またリアルタイムで情報が反映する。データ取得側もGoogleの標準的なAPIだけでデータを取得する事が可能な上に、ノーコードでも対象のスプレッドシートから自分のスプレッドシートへデータを呼び出せます(importrange関数一つでもってこれる)。Microsoft Excel Onlineではできない芸当ですね。Graph API叩く為にAzure ADでOAuth認証情報作ってなんてクソ面倒なことやるような暇はありません。

現在は検索してみたところ「在宅ワーク支援」「生活関連」「医療関連」といったデータが並んでいます。

支援情報の一覧はこちらのスプレッドシートで公開中

この流れで公開データはGoogleスプレッドシートで提供していただきたい。e-StatなどもExcelだけではなく、Google Spreadsheetで提供してくれたらダイレクトにデータを拾えるだけでなく、過去の版まで撮っておけるわけで、一石二鳥です。

正直APIサーバでアクセスは利用者側も負担が大きい上に、そのサーバ(FとかNとかHとか)の購入代金に税金を使っていただきたくない。機密情報ではなくオープンデータなのだから、そもそもサーバなど買う必要はないわけで。Google Spreadsheetでの提供はコスト減にも繋がる。

図:検索サイトよりフィルタしたほうが手っ取り早いです

importrage関数でコピーしてみる

さてこのスプレッドシート。業者とその情報が掲載されていますが、importrange関数で簡単に引っ張ってこれる。Excelでは不可能(もしくはoffice365上位プランだけ)な芸当である「配列でデータを返してくれる特殊な関数」の1つです。

数式も非常に簡単で以下のような数式になる。対象のシートはシート名がSheet1で、範囲はA:Oまでの範囲。追加で必要なのはスプレッドシートのID。

実際に呼び出したサンプルファイルはこちら。importrange-3シートが今回公開されたデータを直接呼び出してる。このサンプルファイルには他にも特殊関数の事例を載せています。

あとは、好きなように加工したり、Google Apps Scriptで加工するだけでオッケー。他のアプリから直接参照したい場合には、OAuth2.0認証でGoogle APIを使う必要性があるのはGraph APIの場合と同じ。そういった手間なくデータを取得できて二次加工できるのが、Googleスプレッドシートの恩恵ですね。

※場合によってはimportrange関数で確定した後#REF!エラーが出て、数式を入れたセルを触るとアクセス許可を求められる事がありますが、承認すればデータが取得できます。

図:数式一つで簡単にデータが手に入る時代

関連リンク