G-gen の min です。Looker Studio の機能である計算フィールドについて、その概要から具体的な使い方、トラブルシューティングを解説します。

計算フィールドとは
Looker Studio における計算フィールドとは、データソースに元々存在するフィールドを基に、関数や数式を用いて新しいディメンションや指標を作成する機能です。
例えば、データソースに「売上」と「費用」の指標がある場合、これらを使って 売上 - 費用 という数式で「利益」という新しい指標を作成できます。また、「姓」と「名」のディメンションを結合して「氏名」という新しいディメンションを作成することも可能です。
このように、計算フィールドを利用することで、元のデータを加工したり、複数のフィールドを組み合わせたりして、レポートで表現したい形にデータを整形できます。可視化の幅を広げるために非常に重要な機能です。
- 参考 : 計算フィールドについて
計算フィールドの種類
計算フィールドには、作成する場所によって2つの種類があります。それぞれの特徴を理解し、用途に応じて使い分けることが大切です。
| 種類 | 説明 | メリット | デメリット |
|---|---|---|---|
| データソースの計算フィールド | データソースの編集画面で作成するフィールド。 | そのデータソースを使用する全てのレポートで再利用できる。一貫性が保たれる。 | 作成・編集にはデータソースの編集者の権限が必要。 |
| レポート固有の計算フィールド | レポート内の特定のグラフ(表やスコアカードなど)に対して作成するフィールド。 | レポートの編集者の権限があれば作成できる。特定のグラフでのみ使用する一時的な計算に便利。 | 他のグラフやレポートで再利用できない。同じ計算を複数のグラフで使う場合は都度作成が必要。 |
基本的には、複数のレポートやグラフで汎用的に使用するフィールドはデータソースの計算フィールドとして作成し、特定のグラフでのみ一時的に必要な計算はレポート固有の計算フィールドとして作成するとよいでしょう。
計算フィールドの作成方法
データソースの計算フィールドを作成する
- Looker Studio のレポート編集画面で、メニューから「リソース」>「追加済みのデータソースの管理」を選択します。

- 計算フィールドを追加したいデータソースの「編集」をクリックします。

- データソースのフィールド一覧画面の右上にある「フィールドを追加」>「計算フィールドを追加」をクリックします。

- フィールドエディタが開きます。「フィールド名」を入力し、「計算式」の欄に数式を入力します。

- 右下の「保存」をクリックして完了です。作成したフィールドは、このデータソースを使用する全てのレポートで利用できます。
レポート固有の計算フィールドを作成する
- レポート編集画面で、計算フィールドを追加したいグラフ(表、スコアカードなど)を選択します。
- 画面右側のプロパティパネルで、「ディメンション」または「指標」セクションの下部にある「ディメンションを追加」または「指標を追加」をクリックします。

- 表示されたメニューから「計算フィールドを追加」を選択します。

- フィールドエディタが開きます。「表示名」を入力し、「数式」の欄に数式を入力します。

データ型を選択し、「適用」をクリックします。作成したフィールドは、選択したグラフでのみ利用できます。
参考 : グラフ固有の計算フィールドの制約
関数
関数とは
計算フィールドでは、単純な四則演算( + , - , * , / )だけでなく、関数を利用することでより高度なデータ操作ができます。
関数はカテゴリごとに分類されています。以下に代表的な関数を紹介します。
| カテゴリ | 代表的な関数 | 説明 |
|---|---|---|
| 集計 | SUM, AVG, COUNT, COUNT_DISTINCT |
指標の合計、平均、個数、ユニークな値の個数を計算する。 |
| 算術 | POWER, ROUND |
べき乗や四捨五入などの算術計算を行う。 |
| 日付 | TODAY, YEAR, DATE_DIFF, DATETIME_TRUNC |
今日の日付の取得、年から年の抽出、日付の差分計算、日付の切り捨てなどを行う。 |
| テキスト | CONCAT, LENGTH, LOWER, UPPER, SUBSTR, REGEXP_MATCH |
文字列の結合、長さの取得、大文字・小文字変換、部分文字列の抽出、正規表現による一致判定などを行う。 |
| 条件分岐 | CASE, IF |
条件に応じて返す値を変更する。 |
全ての関数の一覧は、以下の公式ドキュメントを参照してください。
- 参考 : 関数リスト
CASE 文の使い方
特に使用頻度が高いのが、条件分岐を行う CASE 文です。CASE 文を使うと、フィールドの値に応じて新しい値を割り当てることができます。
構文は以下の通りです。
CASE WHEN 条件1 THEN 結果1 WHEN 条件2 THEN 結果2 ELSE その他の結果 END
例えば、「国コード」フィールド( JP , US など)を基に「国名」フィールド( 日本 , アメリカ など)を作成する場合は、以下のように記述します。
CASE WHEN Country_Code = "JP" THEN "日本" WHEN Country_Code = "US" THEN "アメリカ" WHEN Country_Code = "KR" THEN "韓国" ELSE "その他" END
また、正規表現関数と組み合わせることで、より柔軟な条件設定が可能です。
CASE WHEN REGEXP_MATCH(店舗名, ".*駅前.*") THEN "駅前店舗" WHEN REGEXP_MATCH(店舗名, ".*SC.*") THEN "SC内店舗" ELSE "その他の店舗" END
トラブルシューティング
計算フィールドの作成時によく発生するエラーとその対処法を解説します。
構文エラー
関数名のスペルが間違っている、括弧が閉じていない といった単純な文法ミスです。
計算フィールドのエディタは、エラーがある箇所を赤くハイライトしてエラーメッセージを表示してくれます。メッセージをよく読み、数式を修正してください。
データ型の不一致
テキスト型のフィールドと数値型のフィールドを足し算しようとするなど、異なるデータ型のフィールド間で不適切な演算を行うとエラーになります。
この場合、CAST 関数を使ってデータ型を明示的に変換する必要があります。例えば、テキストとして保存されている数値を数値型に変換するには CAST(フィールド名 AS NUMBER) のように記述します。
集計エラー
「集計指標と非集計ディメンションを混在させることはできません」というエラーは、計算フィールドの作成時に頻繁に発生するエラーの一つです。
これは、集計済みの値と未集計の値を一つの数式内で混ぜて使おうとしたときに発生します。Looker Studio の指標は、グラフに表示される際に行単位のデータが SUM や AVG などで集計されてから表示されます。
例えば、以下のような店舗ごとの商品単価データがあるとします。
| 店舗名 | 商品名 | 単価 |
|---|---|---|
| 渋谷店 | 商品A | 1,000 |
| 新宿店 | 商品A | 1,200 |
| 池袋店 | 商品A | 900 |
このデータを使って「渋谷店の単価が、全店舗の単価の合計に占める割合」を計算したいとします。
ここで、以下のような誤った数式を入力したとします。
// 誤った例 (CASE WHEN 店舗名 = "渋谷店" THEN 単価 ELSE 0 END) / SUM(単価)
この数式がエラーになる原因は、分子と分母で値の集計レベルが異なるためです。
分母の SUM(単価) は集計済みの値です。これは、表全体の単価を合計した 1000 + 1200 + 900 = 3100 という単一の数値を返します。
一方、分子の (CASE WHEN 店舗名 = "渋谷店" THEN 単価 ELSE 0 END) は未集計の値です。この部分は行ごとに評価されるため、結果は 1000, 0, 0 という複数の数値の集まりになります。
この数式は、「行ごとの複数の値(1000, 0, 0)を、全体で一つしかない値 3100 で割る」という計算を意味します。Looker Studioはどの値を割れば良いか判断できないため、エラーを返します。
このエラーを解決するには、分子も分母と同じように集計済みの値にする必要があります。
// 正しい例 SUM(CASE WHEN 店舗名 = "渋谷店" THEN 単価 ELSE 0 END) / SUM(単価)
この数式では、分子と分母の両方が集計済みの単一の値になるため、計算できます。
分子は SUM(CASE ...) によって SUM(1000, 0, 0) が計算され、1000 という単一の値になります。
分母は SUM(単価) によって 3100 という単一の値になります。
1000 / 3100 という明確な計算となり、正しく割合が返されます。
どのタイミングで集計が必要かを理解することが、このエラーを回避する鍵となります。
- 参考 : 計算フィールドのトラブルシューティング
佐々木 愛美 (min) (記事一覧)
クラウドソリューション部 データアナリティクス課。2024年7月 G-gen にジョイン。G-gen 最南端、沖縄県在住。最近覚えた島言葉は、「マヤー(猫)」。
