1/27/2015

Excel。DATEDIF関数を使って、勤続年数を求めると何かがおかしい?


Excel。DATEDIF関数を使って、勤続年数を求めると
何かがおかしい?

DATEDIF関数

Excelで勤続年数。すなわち、満年齢を求める時に使うことが多い、DATEDIF関数。

このDATEDIF関数は、関数の挿入ボタンからダイアログボックスを表示することができない、
いわば、【隠し関数】なのですが、このDATEDIF関数を使った場合、
会社さんのルールによっては、うまく算出されてないことがありまして、
12月や年度末が近付いてきますと、よくご質問を受けることがありますので、
今回は、DATEDIF関数のご紹介とご質問に関しても書いてみようと思います。

下記の表があります。

まずは、DATEDIF関数の作り方と、その算出の結果を確認してみましょう。
D3に満年齢を算出させてみましょう。見た目で、すでに3歳とわかりますが、
DATEDIF関数をD3につくっていきます。

通常ならfxの関数挿入ボタンをクリックして、ダイアログボックスを表示したりしますが、
このDATEDIF関数は【隠し関数】なので、見つけることができません。

なので、数式バーに直接入力するしかありません。

=DATEDIF(B3,C3,"y")

と入力しましょう。”y”は、大文字でもOKです。
また、引数。()の中は、開始日,終了日,算出する期間(単位)です。
ちなみに、単位には下記の種類があります。

"Y" 期間内の満年数
"M" 期間内の満月数
"D" 期間内の満日数

さて、結果は、3ですね。

自分の誕生日を迎えましたので、3歳で間違いありませんね。
では念のため、C3を2015/1/4にしてみましょう。

当然のことながら、2になりましたね。誕生日前日ですから、2歳で問題ありませんよね。

このように、DATEDIF関数は満年齢などを算出してくれるわけです。
さて、続いでは勤続年数。
算出しなくても、見た目で、4/1~3/31なので、1年働いたということで、
1年契約だったりしますと、このようなケースがあると思われますが、
これ、DATEDIF関数を使って勤続年数を算出してみましょう。

D6をクリックして、DATEDIF関数を作成しましょう。

=DATEDIF(B6,C6,"y")

という数式ですね。”y”は大文字でもOKです。結果はというと…

0と算出されてしまいました。数式も結果も間違ってはいません。

ただ、これでは、勤続年数を算出した結果がイメージと異なってしまいます。
2015/4/1まで勤務しないと1年契約にならないのでしょうか?
これは、会社さんによってルールがあるかと思いますが、

イメージとしては、4/1~3/31で勤続年数には1という結果になってほしい訳です。

このDATEDIFは満年齢をを算出する関数なので、最初にやりましたように、
年齢のように誕生日を迎えると年齢がプラス1されるわけです。

つまり、今回の4/1~3/31のような場合では、一日足りませんので、
+1してあげる必要がありますので、イメージ通りの結果を出したい場合には、
D6の数式を

=DATEDIF(B6,C6+1,"y")

と終了日に+1してあげる必要がありますで、調整が必要となります。

なお、実践実務ということもあって、マンツーマン講習を中心にご紹介しております。