Asuka
1
この画像は取引先ごとの各月の担当者マスタです。(担当者が変わるタイミングフラグを立てています)
この画像は取引先ごとの各月の実績です
どちらも1か月ごとにデータを積み上げ、計上月とMIDで結合して担当者ごとの実績を集計しています。
担当者が変わったときのルールが複雑なので実装可能かお聞きしたいです。
まず、MIDが稼働してから7ヵ月間は新規営業担当者に実績をつけます(フラグ1)。
8か月目からは既存営業に担当が変わりますが、4月(年度初め)まで遡りMIDが稼働したタイミングから新規営業担当者にも実績をつけるルールになっています。(フラグ2)
このフラグ2が立った時に、4月(年度初め)に遡って実績をつけていくというルールで、運用していきたいです。こちら実現可能でしょうか?
イメージはこんな感じです。
(粗利の値がExcelと違いますが気にしないでください、、、)
なお、さかのぼることで実績に重複がでますが、あくまでも社員の評価のためのツールなので問題ありません。
つたない説明で申し訳ありません。
ご回答いただけましたら幸いです。
@Asuka 様
ご質問ありがとうございます。
ご教授いただいたルールですがQuickSight上で実現は難しそうな印象をうけております。
実現するとしたらQuickSightにデータ連携される前に事前処理を行う方が簡潔に実現可能かと思います。
貴社の運用として上記対応は検討いただくことは可能でしょうか。
@Asuka さん、既存担当者の方が担当する前の期間については、その方に紐づくデータが無いため、ご提示いただいた形をストレートに表現するのは難しいと思います。ご提示いただいた形の通りに表現が必要であれば murackey さんコメントの通り、上流のデータソース側で過去に遡ったレコードを作ってあげる必要があると思います。
一方で、以下のように累計の表現でもよければQuickSight上で計算フィールドを使い実現が可能です。こちらでご要望を満たせそうかも確認いただけますでしょうか。
▼ イメージ
▼ 計算フィールド
-
年度
ifelse(
extract('MM', 計上月) >= 1 AND extract('MM', 計上月) <= 3,
toString(extract('YYYY', 計上月) - 1),
toString(extract('YYYY', 計上月))
)
-
累計粗利 [担当者別]
runningSum(sum(粗利), [計上月 ASC], [年度, mid, 担当者])
※この計算フィールドは無くてもよいのですが、ピボット表上で単月の粗利の下にいきなり既存担当者用の累計粗利が出ると、読み手に混乱を招く可能性があるため、あえて担当者ごとの粗利も入れてみています。
-
累計粗利 [既存担当者評価用 (新規営業分含む)]
ifelse(
min(担当者フラグ) = 2,
runningSum(sum(粗利), [計上月 ASC], [年度, mid]),
0
)
Asuka
4
ご回答ありがとうございます。
イメージ通りには実現が不可能とのことで、ご提案いただいた方法で運用してくことになりました。
MIDごとの実績の表示はできたのですが、担当者ごとの実績を表そうとするとエラーになってしまいます。こちら解決方法はございますでしょうか?
この状態から、MIDフィールドをはずすと、、、↓
※1つのフィールドで、担当者ごとに実績を表せるよう、ご教授いただいた通りに計算フィールドにすこし手を加えております。
ytakahr
5
@Asuka さん、ご確認ありがとうございます。
MIDはテーブル計算関数であるrunningSumで利用しているためフィールドウェルから外すとご提示いただいたエラーとなり、これ自体は想定通りの挙動となります。
ご希望としては、粗利の累計の範囲は年度かつMID単位のままとし、表示上はMID別ではなく担当者別でシンプルに表示したいものと理解しましたが、認識齟齬があればご指摘ください。
この場合、
-
行フィールドウェルを 担当者 > MID の順に入れ替え、担当者のレベルで折り畳む
-
ビジュアルのプロパティから +/- オプションを非表示とする
以上の手順で次のような見た目になり、期待の形になると思いますがいかがでしょうか。
こちらで解決した場合には、アイコンからSolution付与いただけますと幸いです。
Asuka
6
ありがとうございます。
ご教授いただいた通りに作成したところ、イメージ通りに表現できました。
本運用の際は膨大なMIDのデータを扱うことになるため、ご教授いただきましたロジックを計算フィールドで表現すると読み込みに時間がかかることが想定されます。
今後のことを考えてデータセットの段階で、このロジックを組み込めるといいのですが、こちら可能でしょうか?
ytakahr
7
@Asuka さん、ご確認ありがとうございます。イメージ通りの表現になったとのことで何よりです!
いずれの計算フィールドもデータセット側で定義すること自体は可能なのですが、データセット内で計算処理が行われるのは年度のみになります。累計粗利についてはrunningSum関数を使用している関係でビジュアル表示時に集計処理が行われるため、残念ながらデータセット側に移しても処理時間低減の恩恵を受けることはできません。
読み込み時間に懸念があるということでしたら、まずはデータセットが直接クエリではなくSPICEになっていることを確認し、実データでお試しになってみることをお勧めします。その上でもしユーザー体感として受容できないレベルの場合は上流のデータソース側で予め処理を行うこともご検討いただければと思います。
Asuka
8
ありがとうございます。
運用方法含め、改めて検討したいと思います。