担当者ごとの売上配分とフィルタリングの最適な方法


担当者ごとの売上金額を算出するにあたり、各担当者が関与した案件ごとの売上配分を以下の式で求めたいと考えています。

担当者Aの案件「あ」における売上金額 =
受注額 × 担当者Aの案件「あ」の作業時間 × 乗率 ÷ 案件「あ」の総作業時間

また、特定の担当者に絞り込んで集計を行うフィルター機能を実装したいのですが、案件ごとの総作業時間の算出が正しく行えなくなるのではないかと思い、最適な方法について、何か良いアイデアがあればご教示いただけますでしょうか。

@youpinco さん、QuickSight Communityへようこそ!ご質問ありがとうございます。

担当者Aの案件「あ」における売上金額 =
受注額 × 担当者Aの案件「あ」の作業時間 × 乗率 ÷ 案件「あ」の総作業時間

こちらは以下のような計算式で実現が可能です。

受注額 * 時間 * 乗率 / sumOver(時間, [案件番号], PRE_FILTER)

以下はご提示いただいたものと同様のデータセットでピボットを作成し、上記の計算フィールドを「売上配分」として追加した例です。

案件単位の総作業時間をsumOver関数で計算しており、計算レベルにPRE_FILTERを指定しているのがポイントです。これにより、総作業時間の集計をフィルタ適用前に行うことができます。二つのピボットは全く同じもので、右側のみ担当者Aに絞るフィルタをかけています。担当者を絞っても総作業時間の計算は影響を受けていないのがお分かりいただけるかと思います。

こちらで意図した計算になっているかご確認いただけますでしょうか?

(なお、頂いた計算ロジックだと、担当者ごとの売上配分を足し合わせた際、各人の乗率によっては元の受注額より大きくなったり小さくなったりするかと思います。ご質問の趣旨からは外れますが、この点も意図したものかご確認いただけると幸いです。)