定年退職日のつぎに頻度が高い期間計算は、勤続年数である。今週は勤続期間の計算について、見ていきたい。
勤続年数
特定する2つの日付の計算は、No.17でDATEDIF関数を用いた方法を紹介した。今週はその応用編である。勤続年数は、年休の付与日数や退職金の計算など、人事の実務ではもっとも使用頻度の高い計算である。
たとえば、入社年月日から指定した日付までの経過年数を計算させることで、勤続年数を計算することができる。ここでもう一度DATEDIF関数の詳細について、おさらいしておこう。
=DATEDIF(開始日,終了日,単位)
引数の開始日、終了日は、日付を使用する場合、二重引用符 ("2001/1/30" など)、を用い、セルを指定する場合は、セルの番地をそのまま入力する。なお、計算結果の端数は切り捨てられる。
単位は以下のとおり設定されている。
(単位) (戻り値)
"Y" 期間の年数
"M" 期間の月数
"D" 期間の日数
この関数では、開始日と同じ日付の到来で1年とカウントするので、たとえば、入社日が1991年4月1日の社員の2001年3月31日現在の勤続年数を計算させるには、終了日に1を加える必要がある。
=DATEDIF("1991/4/1","2001/3/31"+1,"y")
勤続年数、月数、日数
上記の応用として、2つの期間の年数、月数、日数を単位ごとにすべて計算させるには、以下の計算式になる。DATEDIF関数の単位に以下を使う。
"YM" 開始日から終了日までの月数。 日付の日数および年数は無視される。
年と月は、上記単位を使ってDATEIF関数で簡単出せるのだが、問題は、年数、月数を計算した後の残りの日数である。上記と同じように、単位"MD"は存在するのだが、不正確な結果を出すので、マイクロソフトも使用を推奨していない。なので、複雑だが、以下の計算式を設定してみた。
これは2つの期間の月数を計算し、その経過月数分あとの日付けを求め、それを2つの期間の日数から差し引くという計算式である。もっとセンスのいい計算式を考えられる読者もおられると思うが、店主が思いつくのはこれである。
いずれにしてもDATEDIF関数を使って期間計算をおこなう場合は、関数自体は同じ日付の到来をもって1年、1ヶ月と計算するので、期間計算の基本である前日の到来をもって1年、1ヶ月と計算させるには、計算式に少々工夫が必要なので、注意されたい。