QuickSightの機能上、難しいかもしれませんが、質問させていただきます。
現在、以下のようなPivot Tableを作成しているのですが、赤で囲った部分は小計ではなく、内訳の計算フィールドと同じようにYTD/FY Targetの%を入れたいです。つまり例えばAであれば、YTDが269,922に対し、FY Targetが3,490,372なので、7.7%と表示させたいです。
これを実現する方法など、ありますでしょうか?
@higuyuta さん、ご質問ありがとうございます。
ピボットテーブルの値フィールドに FY% と言うフィールドを指定されているかと思いますが、フィールドウェルで FY% のメニューを選択し、合計の計算を「デフォルト」もしくは「最大」にすることでご期待の計算になるのではないかと思います。お試しいただけますでしょうか?
もしご期待の計算とならない場合、FY% の計算フィールドの内容と、フィールドウェルの設定を画面ショットで共有いただけますと幸いです。
※以下はご参考までに、私の手元環境にある同様のピボットテーブルのサンプルです。
早速ご回答いただき、ありがとうございます。本来、できる計算なのですね。
残念ながらデフォルトと最大、どちらにしても期待した結果(7.7%)が表示されませんでした。計算フィールドの問題でしょうか?
以下は計算フィールドの内容です。
ifelse(
isNull(sum({ytd})/{target}) = 'true' ,0,
sum({ytd})/{target}
)
すみません、書き忘れましたが{target}にも以下の計算フィールドが入っています。
max(
ifelse(
{category} = '1. XXX', 760000,
{category} = '2. XXX', 593032,
{category} = '3. XXX', 508190,
{category} = '4. XXX', 1629150,
0)
)
@higuyuta さん、計算フィールドのご共有ありがとうございます。
▼原因
ピボットの合計を「Default」にした場合、値に指定した各フィールドの集計方法を使い計算する挙動となります(ご参考)。現在、target(FY Target)は計算フィールド内でmaxを使った計算を行っているため、ピボット作成直後の値は「1,629,150」になっていたのではないかと思います。表示上は集計をSumにしているため、「3,490,372」と表示されていますが、実際のtargetの小計欄の計算では「YTD 269,922 / 1,629,150」と計算されているため「16.6%」となっています。
▼修正方法
-
targetフィールドの計算式を以下のように修正してみてください。
maxOver( ifelse( Category = '1', 760000, Category = '2', 593032, Category = '3', 508190, Category = '4', 1629150, 0 ), [category], PRE_FILTER )
-
FY%の合計の計算は「Default」にしてください。
▼参考
以下は私の手元環境で同様のデータを作成し再現したものです。小数点以下の誤差はありますが、ご期待の計算になっているかと思います。
わざわざ同じ環境を再現して検証いただき、ありがとうございます。
同じように試してみたのですが、私がやるとErrorが返ってきて表示されませんでした。{target}を使っているFY%の計算フィールドも修正するべきでしょうか?
@higuyuta さん、ご確認ありがとうございます。
失礼しました。FY%の変更点のお伝えが漏れていました。
以下のようにtargetにsumを加えていただけますでしょうか。
ifelse(
isNull(sum(YTD)/sum(target)) = 'true', 0,
sum(YTD)/sum(target)
)
ご確認いただき、ありがとうございます。
同じように修正したにもかかわらず、まだ上記のエラーが出ておりましたので、確認したところYTDにも計算フィールドが入っておりました。事前に共有できておらす、申し訳ございません。
まだエラーが出ているのは、このYTDの計算フィールドが原因でしょうか?
ifelse(
dateDiff({reporting_day},now(),"YYYY") = 0
and {reporting_day}<=now()
and {bucket} = 'XXX',
{value},
0
)
@higuyuta さん、おそらくYTDは原因ではないと思います。
仮にYTDの計算フィールドが原因の場合、特に変更を加えずそのまま保存しようとすると、以下のようなエラーメッセージが表示されるはずですが、問題無く保存できるのではないでしょうか?
エラーの原因は、targetとFY%の計算フィールドの集計を変えたため、それらを参照している計算フィールド内でも集計レベルが合わなくなってしまったためです。
ピボットでの利用有無に関わらず、他にtargetもしくはFY%を参照している計算フィールドはありませんでしょうか?
もしわからない場合、匿名化したサンプルデータで構いませんので、QuickSight Arena上にご準備いただければそちらで調査させていただくことも可能です。よろしくお願いいたします。
親身に対応いただきまして、本当にありがとうございます。私が今回作成したダッシュボードでは計算フィールドを多用しておりましたので、改めて確認して再度こちらにご連絡させていただきます。
他の計算フィールドを調べ、保存ができなかった各計算フィールドにsumを加えるなどして修正した結果、以下のメッセージが表示されたものの、新しくPivot Tableを作成し直したところ、MISMATCHED_AGGREGATIONのエラーはなく、結果が表示されました。
ただ、結果は表示されたものの、なぜかFY%が全て0.0%となってしまい、これもまた何かの計算フィールドが原因なのかもしれません。
もし仮にこれも修正できたとして、上記の"The data type of a field~"のメッセージが出る可能性が高く、そうなると最初からVisualを作り直さないといけなくなりそうなので、いったんここまでにしたいと思います。
本件は上記のSolutionがあるということを念頭に置いて、次回同じようなVisualを作成する際に改めて試みたいと思います。ここまで本当にありがとうございました。
@higuyuta さん、ご丁寧に状況共有いただきありがとうございます。
はい、またいつでもCommunityでご質問ください、よろしくお願いします!