Challenge Preppin'Data 2023:Week 35
概要
従業員の異動件数を集計する
従業員の各月ごとの勤務データがあります。
そのデータには、勤務先のDCコードが入っいます。
勤務した月のデータしか、勤務データにもっていないです。
-
異動データの特徴
1 異動した場合、dc_nbrが次の月のレコードから変更になる。
2 異動した場合、異動元の最後のレコードのleave_dateに異動日が設定される。
3 異動した場合、異動先の最初のレコードのtenure_monthsが0リセットされる。
-
集計上の注意点
従業員が 1 つの DC から別の DC に異動するか、従業員が退職し、その後別の DC に再雇用されるかが区別されていません。そのため、2 か月以内であれば、従業員は退職すると仮定します。
たとえば、従業員が 5 月に DC #1 で勤務し、6 月は勤務せず、7 月に DC2 #2 で勤務した場合、これは異動としてカウントされます。
以下は、インプットデータを時系列に並べたものです。縦が従業員ID、横が月、各フィールドにDCの値を置いて色付けしてます。
問題のページ(英語)※ここからデータをダウンロード
出題者の回答のページ(英語)※動画あり
自分の解決法
まず、データ取り込み時に来ない使わないデータは削除しておきます。
次に、異動した月のデータ(異動元)を洗い出し、その時のDC番号をフラグとして設定します。
ここでLookup関数を使います。
今回Total行とDCごとの行を作るのでため、分けて考えます。
最後に全部のデータを結合し、計算フィールドで計算を行います。