チュートリアル: Looker Studio の計算フィールドを作成する

目標

このチュートリアルでは、次の作業を行います。

  • 単純な数式を使った計算フィールドの作成方法を学びます。
  • データを評価し、さまざまな結果を返す条件式を作成します。
  • 計算フィールドを実装するさまざまな方法を学びます。

シナリオ

ペット用品のオンライン ショップを経営していると仮定します。その場合、商品コード(SKU)や商品名、価格や販売数量などの販売データを把握したいと考えるかもしれません。簡単な例を次に示します。

SKU 項目 Price 販売数
D-001 Healthy Dog Dog Food

79.96

16

B-002 Parrot Perch

74.97

8

B-001 Pretty Bird Bird Seed

31.96

20

C-002 Hungry Kitty Cat Food

29.98

3

D-002 Playful Puppy Toy

17.97

11

C-001

Happy Cat Catnip

14.97

4

Looker Studio の計算フィールドでは、こうしたデータの操作や拡張を行うことができます。この演習では、計算フィールドを使用して次のことを行います。

  • 各注文の合計金額を計算します。
  • 一定の金額を超える注文に割引を適用する。
  • 販売した商品を部門別に分類する

サンプルデータ

この演習を手順どおりに進めるには、次のサンプルデータを使用してください。ご自身で用意したデータを使用することもできます(フィールド名は適宜調整してください)。また、Google スプレッドシートへのアクセスが必要です。あるいは、ファイル アップロード コネクタを使って、Looker Studio にデータをインポートすることも可能です。

以下のデータをコピーして、テキスト ファイルに貼り付けます。

SKU,Item,Price,Qty Sold
D-001,Healthy Dog Dog Food,79.96,16
B-002,Parrot Perch,74.97,8
B-001,Pretty Bird Bird Seed,31.96,20
C-002,Hungry Kitty Cat Food,29.98,3
D-002,Playful Puppy Toy,17.97,11
C-001,Happy Cat Catnip,14.97,4

ステップ 1: データを準備する

目標: 前述のサンプルデータを使用して Google スプレッドシートを作成します。

  1. 上の枠内のサンプルデータをコピーします。
  2. テキスト エディタを開いてサンプルデータを貼り付け、ファイルを pet-store-data.csv として保存します。
  • 新しい Google スプレッドシートを作成します

  • スプレッドシートで、[ファイル] > [インポート] を選択します。

  • [アップロード] を選択し、手順 2 で作成したサンプルデータのファイルをアップロードします。

  • [スプレッドシートを置換する] を選択します。

  • スプレッドシートに Pet Store という名前を付けます。

ステップ 2: レポートを作成してデータを追加する

目標: データソースをスプレッドシート「Pet Store」に接続し、レポートに追加します。

  1. Looker Studio で新しいレポートを作成します。
  2. [データのレポートへの追加] パネルで、Google スプレッドシートのコネクタを選択します。
  3. 作成した Pet Store スプレッドシートとワークシートを選択します。
  4. デフォルトで選択されているオプションはそのままにします。
  5. [追加] をクリックします。

まもなく新しいレポートが表示されます。レポートのキャンバスには、データソース「Pet Store」由来のフィールドを使った表が追加されています。

ステップ 3: 小計フィールドを作成する

目標: 注文の小計を計算するフィールドを作成します。

  1. メニューで [リソース] > [追加済みのデータソースの管理] を選択します。

  2. データソース「Pet Store」を見つけて、作成アイコン。 [編集] をクリックします。

    [データソースのフィールド] パネルが表示されます。

  3. [ フィールドを追加] をクリックします。

    計算フィールドのエディタが表示されます。

  4. [フィールド名] に「Subtotal」と入力します。

  5. [数式] に「Price * Qty Sold」と入力します。

  6. [保存] をクリックします。

  7. [すべてのフィールド] をクリックして、メインのデータソース エディタに戻ります。

ステップ 4: 割引フィールドを作成する

目標: 一定の金額の注文に変動型の割引率を適用するフィールドを作成します。

注文の金額に応じて異なる割引率を適用したいとします。Discount という名前の別の計算フィールドを作成して、「小計」フィールドの内容に応じて次の割引率を適用するよう設定しましょう。

小計値 割引率
0 ~ 99 撮影していない
100 ~ 499

5%

500 件以上 10%

ヒント:

  • このステップで行うのは割引率の計算のみです。指定した割引率を適用する作業は次のステップで行います(「小計」フィールドの値に「割引」フィールドの値を掛けます)。
  • CASEを使用して「小計」フィールドを評価します。
    • 各割引率は WHEN 句を使って記述します。
    • 定価(割引率 0%)を返すには ELSE 節を使用します。
  • 割引率は小数で表します。たとえば 25% の割引なら .25 と表現します。

解決策

CASE
WHEN Subtotal > 499 THEN .9
WHEN Subtotal > 100 THEN .95
ELSE 1
END

ステップ 5: 合計フィールドを作成する

目標: 小計に割引率を適用するフィールドを作成します。

Total という名前の別の計算フィールドを作成し、小計フィールドに割引フィールドを乗算するように設定します。

解決策

Subtotal * Discount

ステップ 6: 部門フィールドを作成する

目標: 販売された商品を部門別に分類する計算フィールドを作成します。

最終的な値を返す計算フィールドを作成し、「Department」という名前を付けて、SKU フィールドの解析と SKU に応じた新しい値の割り当てを行うように設定します。犬、猫、鳥に関する商品を別々の部門に分類します。

ヒント: CASE ステートメントをもう一度使用します。今回は STARTS_WITH(または REGEXP_MATCH)関数を使用します。

解決策

CASE
WHEN STARTS_WITH(SKU, "C") THEN "Cat"
WHEN STARTS_WITH(SKU, "D") THEN "Dog"
WHEN STARTS_WITH(SKU, "B") THEN "Bird"
ELSE "Misc"
END

ステップ 7: レポートにデータを表示する

目標: 計算フィールドを視覚化します。

  1. 部門」フィールドを保存した後、左側の [すべてのフィールド] をクリックして、データソース エディタに戻ります。
  2. [完了] をクリックして、データソース管理パネルを閉じます。

作成した計算フィールドをグラフに追加する手順は次のとおりです。

  1. テーブルを選択します。
  2. 作成した各計算フィールドをテーブルに追加するには、[データ] パネルからテーブルまたはテーブルの [設定] パネルにドラッグします。

代替ソリューションも

上記の方法では、小計フィールドと割引フィールド、および合計フィールドに分割したことからもわかるように、問題を個々のチャンクに分割して個別のフィールドを作成し、チャンクを 1 つずつ処理します。

別の方法として、1 つの計算フィールドですべての計算を行う方法があります。たとえば、次のように、このチュートリアルのステップ 3 ~ 5 を 1 つのフィールドにまとめることができます。

CASE
WHEN Price * Qty Sold > 499 THEN (Price * Qty Sold) * .9
WHEN Price * Qty Sold > 100 THEN (Price * Qty Sold) * .95
ELSE Price * Qty Sold
END

どの方法にも長所と短所があります。

複雑な数式を個別のフィールドに分割すると、数式を読んだり記述したりしやすくなり、エラーの発生を抑えることができます。フィールドを分けると、さまざまなコンテキストで使用できるというメリットもあります。たとえば、割引率の計算に個別のフィールドを使用すると、そのフィールドを他の計算で使用することや、レポートに表示することができます。個別の計算フィールドを多数使用した数式を作成する短所としては、各フィールドの動作が不明確となる可能性があるため、それらを個別に編集して計算結果を確認する必要があることが挙げられます。

その一方で、すべてのロジックを 1 つのフィールドにまとめれば、数式がシンプルになって把握や編集がしやすくなります。ただし、同じ内容を繰り返し入力することが必要となる可能性もあります。その場合、数式が複雑だと拡張や保守を行いにくくなります。たとえば、商品グレードが 10 あり、それぞれ注文数のしきい値が異なっている場合や、別の商品ラインで同じ割引率を使用する場合を考えてみましょう。このような場合は、しきい値や割引率ごとに個別のフィールドを使用すると、より簡単で効率的です。

中間的な方法

このソリューションは、前述の 2 つのアプローチを組み合わせたものです。メインのロジックを 1 つのフィールドにまとめつつ、依存するロジックの一部を個別のフィールドに分割します。

CASE
WHEN Subtotal > Large Order THEN Subtotal * Large Order Discount
WHEN Subtotal > Medium Order THEN Subtotal * Medium Order Discount
ELSE Subtotal
END

この方法では、大規模および中規模の注文とそれに対応する割引率の値を保持するフィールドを個別に作成しています。

[Large Order] という計算フィールドで、[数式] ボックスに 499 と入力されている様子。

[Large Order Discount] という計算フィールドと、[Formula] ボックスに「.9」と入力した計算フィールド。

この方法には、読みやすさのほか、柔軟性が高く、必要に応じて比較的簡単に調整できるという利点があります。