DATEDIFで日付の計算をする方法

この記事を読むのに必要な時間は約 4 分です。

 

日数とか年数とか、日付の計算をしたいときってありますよね。

 

でもエクセルで単純に引き算しても、正しい期間が表示されなかったことはないでしょうか?

 

DATEDIFという関数を使って計算するやり方を紹介します。

日付を引き算しても昔の日付が表示されてしまう

勤続年数を表示したい、
「それなら現在の日付から入社日の日付を引き算すればいいのでは?」
って思いますよね。

 

でもやってみると、下図のように昔の日付が表示されちゃいます。

DATEDIFで日付の計算をする方法

 

実は、エクセルの日付って内部ではシリアル値で持っているんですよね。

 

1906年11月4日なら、値として貼り付けてみると分かるんですが、シリアル値は2499です。
365で割ってみると6.85くらいになるので、7年弱。

 

シリアル値は間違ってはいないけど、勤続年数が1906年とか表示されても困ります。

 

こんな時は、DATEDIF関数で計算です。

日付の関数DATEDIFを使う

DATEDIF関数は2つの日付の間が、何日、何か月、何年なのかを計算してくれます。

DATEDIFの使い方

使い方は年月日それぞれ次の通りです。

  • 日数:=DATEDIF(開始日,終了日,”D”)
  • 月数:=DATEDIF(開始日,終了日,”M”)
  • 年数:=DATEDIF(開始日,終了日,”Y”)

 

「〇〇年〇〇ヵ月」と表示したいなら、
=DATEDIF(C7,TODAY(),”Y”)&”年”&MOD(DATEDIF(C7,TODAY(),”M”),12)&”ヵ月”
のように書くと良いでしょう。

DATEDIFで日付の計算をする方法

=DATEDIF(開始日,終了日,”M”) の場合月数が表示されます。

 

年数は既に表示されているので、12で割った余りを「〇〇ヵ月」表示させるには、
MOD(月数,12)と書きます。

 

「年」とか「ヵ月」も表示したいですよね。
他の文字列と結合するには「&」で繋いで、文字列の部分をダブルクォーテーション「””」で囲みます。

単純に日数を出すだけなら、書式を標準に設定する

日数を表示したいだけなら、表示形式を変えるだけです。

 

=終了日-開始日 の数式で日数を求めて、表示形式を標準にすると算出されます。

DATEDIFで日付の計算をする方法

スポンサーリンク

まとめ:DATEDIFで日付の計算をする方法

単純に日数を求めるだけなら、終了日から開始日を引き算して表示形式を標準にすれば大丈夫です。

 

でも月数や年数となると、DATEDIF関数が便利です。

  • 日数:=DATEDIF(開始日,終了日,”D”)
  • 月数:=DATEDIF(開始日,終了日,”M”)
  • 年数:=DATEDIF(開始日,終了日,”Y”)

 

今回は、年数と月数を求めて「〇〇年〇〇ヵ月」のように表示させてみました。
日付の計算をするときの参考になれば幸いです。

 

最後までお読みいただき、ありがとうございました。