Connected Sheets を用いたビッグデータ分析(後編)

AUTHOR :   ギックス

この記事は GiXo アドベントカレンダー の5日目の記事です。
昨日は、Connected Sheets を用いたビッグデータ分析(前編)でした。

Technology Div. の緒方です。

前回は Connected Sheets のメリットや注意点などを紹介しました。今回は Connected Sheets の使い方を紹介します。

この記事の目標は、次のようなピボットテーブルとグラフを作成することです。

ピボットテーブル
新型コロナウイルスの感染者数の月別都道府県別のピボットテーブル
グラフ
新型コロナウイルスの感染者数の都道府県別月間推移のグラフ

Connected Sheets を使う準備

Connected Sheets を使うには Google Workspace の Enterprise プランに申し込む必要があります。料金については問い合わせでの確認が必要ですが、Workspace が G Suite から変わる以前では1ユーザーあたり月額3000円でした。詳しくは申し込みページからご確認ください。

BigQuery に接続する

それではいよいよ Connected Sheets の使い方の紹介に入ります。

最初に Enterprise プランのアカウントから普通にスプレッドシートを作成します。Enterprise プランのアカウントでは 「データ」 を選択した時の一番下に 「データコネクタ」が追加されています。ここから BigQuery に接続することができます。

「BigQuery に接続」を選択すると、GCP のプロジェクト、BigQuery のテーブルセット、テーブルの順に選んで接続するテーブルを選択することができます。今回はオープンデータの「covid19_open_data」を使用します。

接続に成功すると次のような画面が表示されます。この画面からピボットテーブルやグラフを作成することができます。

Connected Sheets でピボットテーブルを作成する

ピボットテーブルを作成するには先ほどの画面から「ピボットテーブル」を選択します。ピボットテーブルを作成すると、スプレッドシートでピボットテーブルを作ったことがある人にはおなじみのピボットテーブルエディタが表示されます。ここまでやれば基本的には通常のピボットテーブルと同じようにピボットテーブルを作成することができます。

冒頭でお見せした目標のピボットテーブルを作るにはピボットテーブルに次のように項目を追加して「適用」を押します。

この時、BigQuery でクエリを発行するためスキャンの料金が発生することに注意してください。スキャン量は画面の右下に表示されます。今回の場合だと271.33MB と表示されていることが確認できます(画像が小さくてすみません)。

Connected Sheets の機能で作成したピボットテーブルの値は参照することが可能です。例えばこのピボットテーブルを作ったシート名とセルの位置を指定して値をそのまま使うことも可能ですし、このピボットテーブルの値を利用してグラフを作成することも可能です。

Connected Sheets のピボットテーブルを利用してグラフを作成する

Connected Sheets は直接グラフを作成する機能もついていますが、スプレッドシート標準のグラフの機能を使用した方が自由度が高いので、今回は先ほど作成したピボットテーブルを利用してグラフを作成してみたいと思います。通常のグラフと同様に作ることが可能です。今回は事前にグラフに用いるデータの範囲を選択して、「挿入」から「グラフ」を選択して作成します。

グラフを挿入したら、グラフエディタから以下の手順を実行することで冒頭のグラフが完成します。

  1. 「グラフの種類」を折れ線グラフに変更
  2. 「行と列を切り替える」をチェックする
  3. 「列 B を見出しとして使用」をチェックする
  4. 「行 2 をラベルとして使用」をチェックする

その他 Connected Sheets でできること

詳細については立ち入りませんが、他にも Connected Sheets でできることがあるため簡単に紹介しておきます。

カスタムクエリを利用して任意のクエリを発行した後のテーブルに接続する

接続するテーブルを選択する画面で「カスタムクエリを作成」を選択することで BigQuery のクエリエディタが表示されます。ここにクエリを書くことで、事前にテーブルの結合をしたり集約した後のテーブルに接続することが可能です。この機能により Connected Sheets の使い方が広がります。

Connected Sheets の API を使用する

Google Sheets APIGoogle Apps Script には Connected Sheets の API が用意されています。スプレッドシートのインターフェースのままでは要件を満たせない場合にこちらの API の使用を検討してください。

おわりに

今回の前後編の記事で Connected Sheets を紹介しました。まだまだ紹介しきれていない機能が存在しているので、導入を検討している方はぜひご自身で触ってみてください。

最後に BI ツールの導入について語りたいと思います。

最新の BI ツールを知っていると Connected Sheets でエクセルのように可視化をすることを古臭く感じてしまうかもしれません。しかし重要なのは実際の業務において役に立つことです。ユーザーがシンプルなピボットテーブルやグラフを求めているのであれば、簡単にそれらの可視化ができるツールほど役に立つということになります。どれだけ機能が豊富な BI ツールでも、ユーザーが使いにくいと感じたらそれは役に立ちにくいツールになってしまいます。

BI ツールを導入する時は必ずユーザーが何を望んでいるのかを明確にしなければなりません。そしてユーザーの望むことを明確にする工程は必ずしもスムーズにいくわけではありません。要望を聞きだして、技術的な検証をして、検証内容を報告して、そこから絶対に譲れない点、妥協できる点を聞き出してまた検証して・・・とお互いの認識を明確にしながら落としどころを探していきます。

この工程は地道な作業を伴うことも多く、時には想定しなかったことも起きるため油断ができるものではありません。しかし要望を正確につかむことができれば実際の業務に役立てていただけるものを提供しやすくなるため、やりがいのある工程でもあります。

私自身がこの工程に臨む時はユーザーの望むもの、顧客の望むものは何かということを念頭に置きながら業務に取り組むよう気を付けています。Technology Div. の一員として、技術的な視点を持ちつつも顧客に寄り添った提案ができるようこれからも精進していきたいと思います。

この記事を読んでいる方が Connected Sheets を選択肢の1つに加えて、最適な選択ができるようになれば幸いです。

明日は「Business Optimization Div. 紹介」を公開予定です。


Satoshi ogata
Technology Div. 所属
データの加工方法やデータ分析基盤についての情報を発信していきます。

SERVICE