[Excel] 勤続年数を求める (DATEDIF関数)

以前、説明したDATEDIF関数を使用して勤続年数を求める方法が専門書に紹介されていたのですが、なんか違和感があったので確認してみます。

Excel20160618_01

上図の例ですが、「よくある例」の
満年数には「=DATEDIF(B3,C3,”Y”)」、
端数月には「=DATEDIF(B3,C3,”YM”)
という関数が入っています。

これはとあるExcelの関数の紹介本に書かれていました。しかし、私はこの結果から得られる年数や月数がどうも違うような気がします。

①や②など4/1入社で3/31退職なら最後の年も丸一年在籍していて端数月が出ないと思います。

退職金とかも通常は4/1入社なら3/31まで在籍して1年とカウントしませんか?私の勤めている会社はそのようにカウントしています。

ですので、上図の「こちらが正しくない?」という結果が私的には求めたい年数と月数になります。

関数は
満年齢には「=DATEDIF(B3,C3+DAY(1),”Y”)
端数月には「=DATEDIF(B3,C3+DAY(1),”YM”)
が入っています。

退職日+DAY(1)で退職日に1日加算して計算しています。

それをまとめて表示している勤続年数には
=DATEDIF(B3,C3+DAY(1),”Y”) &”年”& IF(DATEDIF(B3,C3+DAY(1),”YM”) = 0, “”,DATEDIF(B3,C3+DAY(1),”YM”) &”ヶ月”)
が入っています。

勤続年数を正しく求めるのは?というよりもDATEDIF関数の仕様を十分理解して利用しましょう、というお話です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です