アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELで社員の在籍年月数を計算式で出したいのですが、

A列に入社年月日(例:H11.1.1)
B列に退社年月日(例:H12.12.31)
C列に在籍年数を=YEAR(B)-YEAR(A)
D列に余りの月数を=MONTH(B)-MONTH(A)

とした場合、

正しくは1年0ヶ月となるはずが、
なぜか「0年11ヶ月」となってしまいます。

正しく表示されるにはどうしたらいいのでしょうか?
よろしくお願いいたします。

A 回答 (4件)

エクセル2002で試してみましたが、ちゃんとC列は1、D列は11と出ました。


ただ、この計算方法だと月の部分はおかしくなりますね。
入社が5月で退社が4月だと、マイナスになってしまいますし、11ヶ月なのに-1ヶ月と計算されてしまいます。
C列は、
=DATEDIF($A1,$B1,"Y")
D列には、
=DATEDIF($A1,$B1,"YM")
とすれば、正しく計算されます。

DATEDIF関数は便利な関数なのですが、ある事情から正式にはサポートされていない関数です。
なので、日付・時間関数のリストに入っていませんし、HELPにも載っていない、可哀相な関数です。
DATEDIFでググれば出てきます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/29 17:35

退社年月日に1をプラスして、


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

数式としては、(B+1)-Aではないでしょうか。


よって、次の方法は如何でしょうか。
年数は、=DATEDIF(A1,B1+1,"y")、月数は、=DATEDIF(A1,B1+1,"ym")となり、例示の場合、2年0ヶ月でしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/29 12:50

入社した日から カウントするのだから


 「プラス1」を忘れています。

C1
=DATEDIF(A1,B1+1,"y")
D1
=MOD(DATEDIF(A1,B1+1,"m"),12)

セルの表示形式は 「標準」
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/29 12:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!