• ベストアンサー

在籍年数の計算について

EXCELで社員の在籍年月数を計算式で出したいのですが、 A列に入社年月日(例:H11.1.1) B列に退社年月日(例:H12.12.31) C列に在籍年数を=YEAR(B)-YEAR(A) D列に余りの月数を=MONTH(B)-MONTH(A) とした場合、 正しくは1年0ヶ月となるはずが、 なぜか「0年11ヶ月」となってしまいます。 正しく表示されるにはどうしたらいいのでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#79209
noname#79209
回答No.4

エクセル2002で試してみましたが、ちゃんとC列は1、D列は11と出ました。 ただ、この計算方法だと月の部分はおかしくなりますね。 入社が5月で退社が4月だと、マイナスになってしまいますし、11ヶ月なのに-1ヶ月と計算されてしまいます。 C列は、 =DATEDIF($A1,$B1,"Y") D列には、 =DATEDIF($A1,$B1,"YM") とすれば、正しく計算されます。 DATEDIF関数は便利な関数なのですが、ある事情から正式にはサポートされていない関数です。 なので、日付・時間関数のリストに入っていませんし、HELPにも載っていない、可哀相な関数です。 DATEDIFでググれば出てきます。

haolin
質問者

お礼

分かりやすい説明と背景などもご教示いただき、 ありがとうございました。

その他の回答 (3)

  • sunrisejp
  • ベストアンサー率34% (9/26)
回答No.3

退社年月日に1をプラスして、 ひとつのセルに年月日を表示させるとして、 c1のセルに =DATEDIF(A1,B1+1,"y")&"年"&DATEDIF(A1,B1+1,"ym")&"ヶ月" を入力すればいいと思います。 質問の答えは、1年0ヶ月ではなく2年0ヶ月になります。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

数式としては、(B+1)-Aではないでしょうか。 よって、次の方法は如何でしょうか。 年数は、=DATEDIF(A1,B1+1,"y")、月数は、=DATEDIF(A1,B1+1,"ym")となり、例示の場合、2年0ヶ月でしょうか。

haolin
質問者

お礼

早速の回答、ありがとうございます! 確かに、例示の場合、2年0ヶ月ですね・・私が間違えていました。 こちらで出来そうです。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

入社した日から カウントするのだから  「プラス1」を忘れています。 C1 =DATEDIF(A1,B1+1,"y") D1 =MOD(DATEDIF(A1,B1+1,"m"),12) セルの表示形式は 「標準」

haolin
質問者

お礼

早速の回答、本当にありがとうございます!! プラス1が必要なのですね。今後、気をつけます。

関連するQ&A

専門家に質問してみよう