Excelで共同編集しようとすると、クラウド(OneDrive)にあげて共有すればいいと思いますが、そもそも個人でOneDriveを使っていない方もいますね。
そこで、Google スプレッドシートだとクラウドサービスのため、最初からクラウドにファイルがあります。Googleアカウントを持ってる方にファイル共有できるので、共同編集がやりやすいです。
Google スプレッドシートをBIツールで分析しようと思ったときに、同じGoogle製品のLooker Studioが候補に挙がります。
ただ、普段はPower BIで分析している方であれば、Power BIで分析したいニーズもあると思います。Power BIには標準で「Googleスプレッドシート」に直接接続できるコネクタが用意されています。これを使えば、クラウド上のデータをダイレクトに参照し、ボタン一つで最新の状態へ更新することが可能です。
今回は、Power BI Desktopを使ってGoogleスプレッドシートのデータを読み込む具体的な手順について解説します。
サンプルデータ
売上明細をサンプルデータとして使用します。

サンプルデータはこちらからダウンロードしてください。Excelファイルになっているため、表をGoogle スプレッドシートに貼り付けてお使いください。
実際の手順
それでは、Power BI Desktopを使って接続していきましょう。
手順1:GoogleスプレッドシートのURLを取得
まず、ブラウザで対象のGoogleスプレッドシートをURLを取得します。
ファイルをクリックし、🔗ボタンをクリックします。

URLがクリップボードにコピーされました。
手順2:Power BI Desktopでコネクタを選択
Power BI Desktopを起動します。初期画面の「他のソースからデータを取得する」をクリックします。

「その他」ー「Google スプレッドシート」をクリックし、「接続」をクリックします。

警告のポップアップが表示されます。「続行」をクリックします。

URLの入力画面が表示されるので、手順1でコピーしたURLを貼り付け、「OK」をクリックします。

手順3:Googleアカウントで認証する
Google スプレッドシートにアクセスするためには、Googleアカウントにサインインする必要があります。「サインイン」をクリックします。

ブラウザーが開きます。Googleアカウントを選択します。

Power BI DesktopからGoogleアカウントへのアクセス許可を求められます。「続行」をクリックします。

「サインインが完了しました。アプリケーションに戻ることができます。このブラウザーのタブを閉じてください。」と表示されますので、タブを閉じてください。

サインインが完了したので、「接続」をクリックします。

手順4:データの加工(Power Query)
ここからは、データの取得およびデータの加工をPower Queryで実施します。
特にデータ加工の必要がなければ、「読み込み」ボタンをクリックしても良いのですが、プレビュー画面ではヘッダー行を元に列名が自動的に設定されていません。
読み込みボタンではなく、「データの変換」ボタンをクリックしましょう。

「ホーム」タブー「1行目をヘッダーとして使用」をクリックします。

列名が設定されました。

手順5:データの出力
ここまで完了したら、「ホーム」タブー「閉じて適用」をクリックして取り込み完了です。

「テーブルビュー」ボタンをクリックすると、取得したデータの一覧が参照できます。

補足と注意点:パフォーマンスについて
Excelファイルやデータベース接続に比べて、Google スプレッドシートコネクタはパフォーマンス面で制限があります。
読み込み速度とタイムアウトの壁
Microsoftの公式サイトにはGoogle スプレッドシートのコネクターについて解説があり、どうやら裏でGoogle Sheets API を呼び出しているようです。
次に、コネクタは URL から Google スプレッドシート ID を解析して、Google Sheets API 呼び出しに含めます。
引用元:Google スプレッドシート
このAPIには通信上の制約があり、Googleの公式サイトには次のように記載があります。
Sheets API には分単位の割り当てがあり、1 分ごとに補充されます。たとえば、プロジェクトごとに 1 分あたり 300 件の読み取りリクエストの上限があります。 アプリが 1 分間に 350 件のリクエストを送信する場合、追加の 50 件のリクエストは割り当てを超過し、
429: Too many requestsHTTP ステータス コード レスポンス。そのような場合は、 指数バックオフ アルゴリズムを使用します。1 分後、 リクエストを再実行できます。ユーザーは、割り当て上限内であれば、同時に複数のリクエストを送信できます。引用元:使用制限
それほど多くの件数は読み取れないみたいですね。トランザクションデータを読み込むのは向いていないかもしれません。数が少ないマスタデータなどは耐えうるかもしれません。
制限に引っかかると、429 Too Many Requestsというエラーが発生します。エラーが発生すると、一時的に接続できなくなります。
まとめ
今回は、Power BIでGoogleスプレッドシートのデータを読み込む方法を解説しました。
ポイントは次の通りです。
- URLを指定すれば簡単にデータ取得が可能
- データ取得にはGoogleアカウントのサインインが必要
- 大量データの場合はスプレッドシート側の整理(不要行削除)が重要
取得できるデータ件数が少ないのがネックですね。件数が多い場合は、Excelファイルとしてパソコンに保存してPower BIに接続するなど、そもそもGoogle スプレッドシートを使うべきかどうかも検討が必要になります。

