Translate

2017年3月8日水曜日

勤務年数の計算


社員データを使用して、2017年4月2日時点の従業員の勤続年数を算出します。
計算方法は、次の3段階のステップで行います。

1. DateDiff関数で「勤続年数」を算出
  → 入社年と2017年の差分を算出


2. DateAdd関数で「入社日に勤続年数追加」を算出
 →1の結果を入社日に加算

3. IIF関数で「正しい勤続年数」を算出
 →「入社日に勤続年数追加」が2017年4月2日以前か判断
  以降:「入社日に勤続年数追加」= 「勤続年数」
  以前:「入社日に勤続年数追加」=「勤続年数」- 1

各ステップの詳細は次のようになります。


DateDiff関数で「勤続年数」を算出

[レポートデータ]ペインの[データセット]フォルダ以下にある[商品]を右クリックして、[計算フィールドの追加...]をクリックします。(テーブル列に計算結果を表示を参照)

[フィールド]プロパティページを開きます。
新しいフィールドに「勤続年数」と入力し、[Fx]ボタンをクリックします。




[式の設定(S):Value]に次の式を入力して、[OK]ボタンをクリックします。


       ➡2017年4月2日時点で入社日との差分を年単位で計算


テーブル右側に列を追加して、[勤続年数]フィールドを追加します。
結果はこんな感じです。




しかし、これでは2016年12月に入社した社員も勤続年数1年となってしまいます。

これを解決するために次のステップに進みます。


DateAdd関数で「入社日に勤続年数追加」を算出

[レポートデータ]ペインの[データセット]フォルダ以下にある[商品]を右クリックして、[計算フィールドの追加...]をクリックします。

[フィールド]プロパティページを開きます。
新しいフィールドに「入社日に勤続年数追加」と入力し、[fx]ボタンをクリックします。




 [式の設定(S):Value]に次の式を入力して、[OK]ボタンをクリックします。


      ➡入社日に勤続年数を年単位で加算

テーブル右側に列を追加して、[入社日に勤続年数追加]フィールドを追加します。
この結果は次のステップで使用します。





IIF関数で「正しい勤続年数」を算出

[レポートデータ]ペインの[データセット]フォルダ以下にある[商品]を右クリックして、[計算フィールドの追加...]をクリックします。

[フィールド]プロパティページを開きます。
新しいフィールドに「入社日に勤続年数追加」と入力し、[Fx]ボタンをクリックします。




[式の設定(S):Value]に次の式を入力して、[OK]ボタンをクリックします。



=IIf(Fields!入社日に勤続年数追加.Value>"4/2/2017",Fields!勤続年数.Value-1,Fields!勤続年数.Value)
      「入社日に勤続年数追加」の値が、2017年4月2日以降か否かを判断

テーブル右側に列を追加して、[正しい勤続年数]フィールドを追加します。

社員コード「107」の社員の勤続年数は、2017年4月2日時点では満25年です。