romi
1
■ やりたいこと
「主要業務指標 (KPI)」のビジュアルを使用して、コントロールにて指定された期間の売上合計額と同じ長さの過去の期間: (過去の開始日) から startDate までの売上を集計前期間の売上合計額を比較表示したいです。
例えば以下のようなイメージです。
- 現在の期間が 2024/3/1 ~ 2024/3/31 (31日間)の場合
- 過去の期間として 2024/1/30 ~ 2024/2/29 の31日間の売上を集計する
また、求めているものはLockerStuduioの「前の期間」と同様の機能です。
■ 試したこと
「主要業務指標 (KPI)」のビジュアルでは以下の計算フィールドを指定しようと考えています。
- 値:売上合計額
- ターゲット値:「前期間(同じ日数)の売上合計額」
ターゲット値に指定する「前期間(同じ日数)の売上合計額」の計算フィールドがうまく機能せずに困っています。
- 「前期間(同じ日数)の売上合計額」計算フィールドで以下のロジックを実装
sumIf(
sales,
日付 >= addDateTime(-dateDiff(${startDate}, ${endDate}, 'DD'), 'DD', ${startDate})
and
日付 < ${startDate}
)
しかし、数値が反映されず、nullになってしまいます。また、nullの場合nullを考慮して0にするように処理を書きましたが、その場合は0になります。データは過去まで入っているため、データが不足しているなどはありませんでした。
もし何かしらいい方法などがありましたら教えていただけると幸いです。
Wakana
2
@romi
ご質問いただき、ありがとうございます!
計算フィールドのロジックや関数は、合っていると思います。私のテスト環境で試すと、問題なく売上合計値が出てきます。dateDiff関数の結果を-(マイナス)にする部分ですが、()を加えて試していただけないでしょうか?
-(dateDiff(${startDate}, ${endDate}, 'DD'))
romi
3
返信ありがとうございます!
()を加えて再度試してみました。計算フィールド自体は問題なく作成できるのですが、変わらずKPIには表示がされませんでした。コントロールの期間はしっかりとsalesには反映されているため、コントロールとの連携はできているはずです。
↓再度修正した計算フィールド(「前の期間の売上合計値」)
sumIf(
sales,
日付 >= addDateTime(-(dateDiff(${startDate}, ${endDate}, 'DD')), 'DD', ${startDate})
and
日付 < ${startDate}
)
以下に該当のスクリーンショットを添付しておきます。
Wakana
4
KPIでの表示ですが、おそらくKPIにコントロールで指定した期間フィルターが定義されていると推察します。その場合、フィルターされたデータで、前の期間の計算フィールドを算出しようとするので、算出できず、指定期間のみのデータが表示されているのかと思います。
フィルターされない状態で集計計算をしないといけないので、以下の手順で試していただけませんか?(もしコントロールの期間がパラメータにリンクされていない場合は別途コントロールの再作成をしていただく必要があります)
・KPIのフィルター定義を削除
・指定期間の集計計算する以下のような計算フィールドを作成
sumif({sales}, {date} >= ${startday} and {date} <= ${enddate})
・KPIの値にあるsalesを、上記計算フィールドに置き換え
1 Like
romi
5
ありがとうございます!
ィルターされたデータで、前の期間の計算フィールドを算出しようとするので、算出できず、指定期間のみのデータが表示されているのかと思います
まさにその通りでした。
無事、やりたいことが実現できました!
ありがとうございました!
1 Like