Looker Studioの表示速度を改善!GoogleスプレッドシートとGASを活用し、計算フィールドなしでデータを可視化する方法を詳しく画像を用いて解説します。
Looker Studioの計算フィールドが遅くなる原因
Looker Studio(旧Googleデータポータル)は、手軽にデータを可視化できる便利なツールですが、計算フィールドを多用するとパフォーマンスが低下することがあります。特に、大量のデータを扱う場合や複雑な計算を行う場合、レポートの表示に時間がかかることが問題になります。
また、難しいタスクでLookerStudioを使用している人は感じたことがあるかもしれませんが計算フィールドではできることできないことの限界があります。
では、どのようにすればLooker Studioの表示を速く確実にできるのでしょうか?答えは、スプレッドシート側で事前に計算を済ませておくことです。
スプレッドシートで事前に計算を済ませるメリット
Looker Studioの計算フィールドを使わずに、スプレッドシートで事前に計算しておくことで、次のようなメリットがあります。
✅ 表示速度の向上:計算を事前に完了させることで、Looker Studioの負担を軽減し、レポート表示を高速化できます。
✅ Looker Studioの処理負荷削減:計算済みのデータをそのまま取得できるため、Looker Studioの内部処理がシンプルになります。
✅ GAS(Google Apps Script)を使えばより柔軟な処理が可能:関数では対応できない複雑な処理もGASを使うことで実装できます。
では、具体的にGASを使ってスプレッドシートのデータを処理し、それをLooker Studioに取り込む方法を見ていきましょう。
GASでスプレッドシートのデータを処理するスクリプトの作成
1️⃣ 手順①:スプレッドシートを準備
まず、Googleスプレッドシートを用意し、データを記録します。例えば、以下のような売上データがあるとします。

また、売上データの他にGASのスクリプトを回した後の集計データのシートを作成します。

2️⃣手順②:GASスクリプトを作成
- Googleスプレッドシートを開き、
拡張機能 > Apps Scriptをクリック

- スクリプトを書く(JavaScript)
以下のスクリプトは月ごとの売上、購入回数、購入単価を計算します。 またLookerStudioでは実装が難しい「前年同月」データや、計算フィールドでできるような年度の計算(2024年2月は2023年度)や経過月(例えば10月だったら4月から7ヶ月目)など、LookerStudioで必要なディメンションやメジャーを全て作成してしまいます。
function aggregateSalesData() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sourceSheet = ss.getSheetByName('元データ'); // データを取るシート const targetSheet = ss.getSheetByName('集計データ'); // 出力先シート const data = sourceSheet.getDataRange().getValues(); const headers = [ "年月", "売上", "購入回数", "購入単価", "前年同月売上", "前年同月購入回数", "前年同月購入単価", "年", "月", "年度", "経過月" ]; const aggregatedData = {}; const fiscalYearSummary = {}; const outputData = [headers]; // データ集計 for (let i = 1; i < data.length; i++) { const [orderDate, , , , orderCode, , , , sales] = data[i]; // 正しいカラムの順番で取得 if (!orderDate || !sales || isNaN(sales)) continue; // 売上がNaNならスキップ const date = new Date(orderDate); const year = date.getFullYear(); const month = date.getMonth() + 1; const yearMonth = `${year}-${String(month).padStart(2, '0')}`; const fiscalYear = (month >= 4) ? year : year - 1; if (!aggregatedData[yearMonth]) { aggregatedData[yearMonth] = { sales: 0, uniqueOrders: new Set(), year, month, fiscalYear }; } if (!fiscalYearSummary[fiscalYear]) { fiscalYearSummary[fiscalYear] = { salesByMonth: {}, uniqueOrdersByMonth: {} }; } aggregatedData[yearMonth].sales += sales; aggregatedData[yearMonth].uniqueOrders.add(orderCode); if (!fiscalYearSummary[fiscalYear].salesByMonth[month]) { fiscalYearSummary[fiscalYear].salesByMonth[month] = 0; fiscalYearSummary[fiscalYear].uniqueOrdersByMonth[month] = new Set(); } fiscalYearSummary[fiscalYear].salesByMonth[month] += sales; fiscalYearSummary[fiscalYear].uniqueOrdersByMonth[month].add(orderCode); } // 出力データの生成 for (const yearMonth in aggregatedData) { const entry = aggregatedData[yearMonth]; const purchaseCount = entry.uniqueOrders.size; const averageUnitPrice = purchaseCount > 0 ? Math.floor(entry.sales / purchaseCount) : 0; const lastYearMonth = `${entry.year - 1}-${String(entry.month).padStart(2, '0')}`; const lastYearEntry = aggregatedData[lastYearMonth] || { sales: 0, uniqueOrders: new Set() }; const lastYearSales = lastYearEntry.sales; const lastYearPurchaseCount = lastYearEntry.uniqueOrders.size; const lastYearAverageUnitPrice = lastYearPurchaseCount > 0 ? Math.floor(lastYearSales / lastYearPurchaseCount) : 0; const elapsedMonth = entry.month >= 4 ? entry.month - 3 : entry.month + 9; outputData.push([ yearMonth, // 年月 entry.sales, // 売上 purchaseCount, // 購入回数 averageUnitPrice, // 購入単価 lastYearSales, // 前年同月売上 lastYearPurchaseCount, // 前年同月購入回数 lastYearAverageUnitPrice,// 前年同月購入単価 entry.year, // 年 entry.month, // 月 entry.fiscalYear, // 年度 elapsedMonth // 経過月 ]); } // データの書き込み targetSheet.clear(); targetSheet.getRange(1, 1, outputData.length, outputData[0].length).setValues(outputData); } - aggregateSales() を実行すると、「集計結果」シートに日別売上合計が表示される

以下のように「集計データ」シートに集計されます。

Looker Studioでデータを可視化する
スプレッドシートをLooker Studioに接続
- 「集計データ」シートを選択した状態で、「拡張機能」からLookerStudioのレポートを作成する

- 作成すると以下のようなスプレッドシートができる。先ほど計算して集計されたカラムは、そのままディメンションやメジャーとしてデータに追加されています。

まとめ:この方法を活用して快適なデータ分析を実現
Looker Studioの計算フィールドを減らすことで、レポートの表示速度を大幅に向上できます。そのために、スプレッドシートとGASを活用し、データを事前に計算しておく方法が有効です。
✅ ポイントのおさらい
・Looker Studioの計算フィールドを減らすことで、表示速度を改善
・スプレッドシートでデータを事前に計算し、負荷を軽減
・GASを活用して自動計算し、効率的なデータ集計を実現
この方法を取り入れれば、Looker Studioのストレスフリーなデータ可視化が可能になります!ぜひ試してみてください。

