対前年比成長貢献度(Contribution to Growth (CTG))の計算方法

対前年比成長貢献度(Contribution to Growth (CTG))の、計算フィールドでの計算方法についてご教示頂けないでしょうか。

以下の計算式を適用した計算フィールドを作成したいのですが、なかなかうまくいかず困っております。

  • (今年の特定カテゴリーの売り上げ - 前年の特定カテゴリーの売り上げ) / 全カテゴリーの前年の売上

検索したところ英語Q&Aに同様の質問がありますが、未解決のようです。

どうぞ宜しくお願い致します。

ご質問ありがとうございます。
差し支えない範囲で、元データサンプルと試した計算フィールドをご教示頂けるでしょうか?
よろしくお願い致します。

@ymatz
早速のご返信ありがとうございます。
以下イメージのようなテーブルをQS上に作成しています。

last_year_gmsとgms_yoy_deltaは計算することが出来たのですが、ヘッダーを赤字に色付けしている、2つの計算式(last_year_all_category_gms、CtG (bps))を作成することが出来ません。

現在使用している数式

  • last_year_gms = periodOverPeriodLastValue(sum({gms}),{order_day},MONTH,12)
  • gms_yoy_delta = sum({gms})- periodOverPeriodLastValue(sum({gms}),{order_day},MONTH,12)

失敗した数式

  • last_year_all_category_gms = sumOver(
    periodOverPeriodLastValue(sum({gms}),{order_day},MONTH,12),
    [{order_year_month}],
    PRE_FILTER
    )

ご確認よろしくお願い致します。

データありがとうございます。
あまり美しくないのですが、なんとかやってみました。
以下が、各計算フィールドになります。

  • year_all_category_gms = sumOver(gms, [{order_day}], PRE_FILTER)
  • last_year_all_category_gms = periodOverPeriodLastValue(min(sumOver(gms,[{order_day}], PRE_FILTER)), {order_day}, MONTH, 12)
  • CtG(bps) = min({year_all_category_gms}) - {last_year_all_category_gms}

以下表示した例となります。

以下補足です。

  • 計算フィールド式に集計が含まれていると、それはカスタム集計となり以下ドキュメントにあるルールが適用されます。
    集計関数 - Amazon QuickSight
  • 上記にあるルールにより、PRE_FILTER または PRE_AGG を使用する場合は、最初のパラメータに非集計メジャーを使用する必要があります。
  • また、集計フィールドと非集計フィールドの両方を組み合わせることができないため、回避策としてmin()を使って非集計フィールドに変換しています。maxでもavgでも効果は同じです。

@ymatz
ご確認ありがとうございます。
頂いた数式を試してみましたが、正しい数字が表示されません。

データセットはorder dayごとにデータを持っているため(ヴィジュアル上でMonthにAggregatedしている)、正しくない数字が出てしまっているように思います。sumに変更しましたが、それでも「全カテゴリのGMS合計」が正しく表示されません。
データセットはorder monthのデータも持っているため、そちらも試しましたが正しい結果が表示されません。

データセットはこのような構造になっています。

Column 1 Column 2 Column 3 Column 4 E F
order_day order_year_month item_name item_catogory quantity gms
2024/1/5 2024/1/1 ノートパソコンPro15 PCカテゴリ 1 135000
2024/1/7 2024/1/1 季節の野菜ボックス 食品カテゴリ 1 2800
2024/1/8 2024/1/1 ゲーミングマウス PCカテゴリ 1 6000
2024/1/10 2024/1/1 高級チーズセット 食品カテゴリ 1 4500
2024/1/12 2024/1/1 4Kディスプレイ32インチ PCカテゴリ 1 42000
2024/1/14 2024/1/1 オーガニックコーヒー詰合せ 食品カテゴリ 2 3600
2024/1/15 2024/1/1 ワイヤレスイヤホン PCカテゴリ 1 18500
2024/1/17 2024/1/1 特選和牛すき焼きセット 食品カテゴリ 1 12000
2024/1/18 2024/1/1 SSD内蔵型1TB PCカテゴリ 1 16500
2024/1/20 2024/1/1 健康食品アソート 食品カテゴリ 2 4200
2024/1/22 2024/1/1 プログラマブルキーボード PCカテゴリ 1 15000
2024/1/24 2024/1/1 高級茶葉セット 食品カテゴリ 1 5500
2024/1/25 2024/1/1 バックアップドライブ PCカテゴリ 1 9800
2024/1/27 2024/1/1 グルテンフリーパスタセット 食品カテゴリ 2 3200
2024/1/29 2024/1/1 VRヘッドセット PCカテゴリ 1 55000
2024/1/31 2024/1/1 プロテインバー詰合せ 食品カテゴリ 2 2800
2024/2/2 2024/2/1 超軽量ノートPC PCカテゴリ 1 98000
2024/2/3 2024/2/1 高級チョコレート詰合せ 食品カテゴリ 1 4800
2024/2/5 2024/2/1 スマートスピーカー PCカテゴリ 1 8000
2024/2/6 2024/2/1 天然水24本セット 食品カテゴリ 1 2400
2024/2/8 2024/2/1 ドッキングステーション PCカテゴリ 1 18500
2024/2/10 2024/2/1 有機栽培フルーツセット 食品カテゴリ 1 2800
2024/2/12 2024/2/1 グラフィックタブレット PCカテゴリ 1 28000
2024/2/13 2024/2/1 バレンタイン特製ケーキ 食品カテゴリ 2 4600
2024/2/14 2024/2/1 ハイスペックノートPC PCカテゴリ 1 165000
2024/2/15 2024/2/1 高級ワインセット 食品カテゴリ 1 15000
2024/2/17 2024/2/1 USBハブマルチポート PCカテゴリ 1 2800
2024/2/19 2024/2/1 燻製セット 食品カテゴリ 1 7800
2024/2/21 2024/2/1 ポータブルモニター PCカテゴリ 1 22000
2024/2/23 2024/2/1 高級緑茶セット 食品カテゴリ 1 2100
2024/2/25 2024/2/1 ネットワークNAS PCカテゴリ 1 32000
2024/2/27 2024/2/1 低糖質スイーツセット 食品カテゴリ 1 1900
2024/2/29 2024/2/1 ゲーミングPC PCカテゴリ 1 180000
2024/2/29 2024/2/1 プレミアムナッツミックス 食品カテゴリ 2 3000
2025/1/3 2025/1/1 ノートパソコンX200 PCカテゴリ 2 240000
2025/1/5 2025/1/1 有機野菜セット 食品カテゴリ 3 5400
2025/1/7 2025/1/1 ワイヤレスマウス PCカテゴリ 4 10000
2025/1/10 2025/1/1 プレミアム牛肉 食品カテゴリ 2 10400
2025/1/12 2025/1/1 モニターディスプレイ27インチ PCカテゴリ 2 70000
2025/1/15 2025/1/1 ミネラルウォーター12本セット 食品カテゴリ 3 2400
2025/1/18 2025/1/1 外付けHDD 2TB PCカテゴリ 2 30000
2025/1/20 2025/1/1 冷凍食品詰め合わせ 食品カテゴリ 4 6400
2025/1/22 2025/1/1 Bluetoothキーボード PCカテゴリ 2 17000
2025/1/25 2025/1/1 オーガニック米5kg 食品カテゴリ 3 9600
2025/1/27 2025/1/1 Webカメラ PCカテゴリ 3 21000
2025/1/30 2025/1/1 チョコレート詰め合わせ 食品カテゴリ 3 5700
2025/2/1 2025/2/1 タブレット端末 PCカテゴリ 2 90000
2025/2/3 2025/2/1 高級紅茶セット 食品カテゴリ 3 7500
2025/2/5 2025/2/1 ポータブルSSD 500GB PCカテゴリ 3 36000
2025/2/7 2025/2/1 フルーツジュース6本セット 食品カテゴリ 4 4800
2025/2/10 2025/2/1 ゲーミングヘッドセット PCカテゴリ 2 24000
2025/2/12 2025/2/1 パスタセット 食品カテゴリ 3 4200
2025/2/14 2025/2/1 メモリーカード64GB PCカテゴリ 4 12000
2025/2/15 2025/2/1 バレンタインチョコレート 食品カテゴリ 6 9000
2025/2/17 2025/2/1 デスクトップPCフルセット PCカテゴリ 2 320000
2025/2/19 2025/2/1 オリーブオイル特選品 食品カテゴリ 3 6900
2025/2/20 2025/2/1 プリンター複合機 PCカテゴリ 2 50000
2025/2/22 2025/2/1 お菓子アソート 食品カテゴリ 5 6500
2025/2/23 2025/2/1 ルーター無線LAN PCカテゴリ 2 17000
2025/2/25 2025/2/1 コーヒー豆セット 食品カテゴリ 3 5700
2025/2/26 2025/2/1 モバイルバッテリー PCカテゴリ 4 10000
2025/2/27 2025/2/1 ドライフルーツミックス 食品カテゴリ 3 3600
2025/2/28 2025/2/1 スマートウォッチ PCカテゴリ 2 36000
2025/2/28 2025/2/1 オーガニックジャム3個セット 食品カテゴリ 4 5200

データ提示頂きありがとうございます。
以下に修正してみました。ご希望に合っているでしょうか?

やったこと

  • データ取り込み後、データセットのorder_year_month, order_dayを日付型に変更
  • oder_dayは「集計:月」、表示形式を「2025/09/20」に変更
  • gmsは「集計: 合計」

計算フィールドは以下に変更

  • year_all_category_gms = sumOver(gms, [truncDate(‘MM’, {order_day})], PRE_FILTER)
  • last_year_all_category_gms = periodOverPeriodLastValue(min(sumOver(gms,[truncDate(‘MM’, {order_day})], PRE_FILTER)), {order_day}, MONTH, 12)
  • CtG(bps) = min({year_all_category_gms}) - {last_year_all_category_gms}

月で集計するようにしたため、計算フィールドも月集計に修正しています。
truncDate(‘MM’, {order_day})によって、日付型のデータから月の部分のみを抜き取っています。

@ymatz

ご確認ありがとうございます。

今回取得したいCtG(bps)の計算式は以下のため、ご提示いただいた内容は取得したい内容と異なっておりました。
CtG(bps) = (今年のカテゴリ別GMS-昨年のカテゴリ別GMS)/昨年の全カテゴリGMS*10000

昨年の全カテゴリGMSは頂いた数式を使うことができ、昨年のカテゴリ別GMSはこちらで数式を作り、正しいCtGを表示することが出来たのですが、フィルタで2025年のデータのみに絞り込むと昨年のカテゴリ別GMSが消えてしまい、CtG列の表示も消えてしまいました。

periodOverPeriodLastValueにPRE FILTERが使えないので、フィルターをすると消えてしまう場合にはどのように対応したらいいでしょうか。テーブルの表示が煩雑になるため、表示は2025年のデータのみに絞り込みたいです。

@hhhayama

そうですね、periodOverPeriod関数はLAC対応いていないので、集計を詳細なレベルで指定できません、が、トリッキーなのですが、フィルターで指定する方法を集計計算で指定することにより、フィルターの適用タイミングを変える方法があります。

DemoCentralのサイトにそれが紹介されているので、できるかどうか、ご確認ください。

DemoCentralのサイトは、左にある分析アイコンをクリックすることで、分析画面に入ることができ、設定をさらに確認できるようになっています。