【説明が短い!日付関数】日数を数える。応用で〇年〇ヵ月〇日と表示する「DATEDIF」

日数を数える基本の関数は「DATEDIF関数」です。

こちらはExcelの関数の挿入ダイアログからは表示されませんので、手入力となります。

しかし難しく考えることはありません。
「=DATEDIF(開始日,終了日,単位)」のように入力するだけです。

ここで「単位」について説明しておきたいと思います。
年数を出したい、月数を出したい、日数を出したい、という条件に応じて以下のようになります。

単位 戻り値
Y 期間の年数を求めます。
M 期間の月数を求めます。
D 期間の日数を求めます。
MD 開始日から終了日までの日数です。 日付の月数および年数は無視されます。※既知の問題あり
YM 開始日から終了日までの月数です。 日付の日数および年数は無視されます。
YD 開始日から終了日までの日数です。 日付の年数は無視されます。

実際に関数を作成してみましょう。



2000/5/10 生まれの人から2020/9/7 まで何日あるのか、日数を数えてみましょう。

この時に、直接日付を手入力する場合はダブルクォーテーション[""]で挟みましょう。
同様に単位もダブルクォーテーションで挟みます。

=DATEDIF("2000/5/10","2020/9/7","D")

上記の式を入力すると、値「7425」と求められますので、2000/5/10から2020/9/7までは7425日ある、と分かりました。

日付を手入力ではなくセルで指定したい場合は、セル番地にダブルクォーテーションは必要ありせん。
下図を参考にすると、以下のような式になります。
=DATEDIF(A2,B2,"D")

1

 

【〇年〇ヵ月〇日と表示したい】

上記のようにただ日数を出すだけなら良いのですが、何年何ヵ月何日と表示したい場合も多いと思います。
同じDATEDIF関数を重ねていけば簡単に表示できます。

=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"ヶ月"&DATEDIF(A2,B2,"MD")&"日"

2

長い式になりますが、よく見るとDATEDIF関数を繰り返し「&」の記号で繋げているだけです。
さらにその間に「年」「ヵ月」「日」も「&」で繋げます。(文字列にはダブルクォーテーション[""]で挟むのを忘れずに)

※既知の問題
Microsoft HPより抜粋
「"MD" 引数は、負の値、ゼロ、または不正確な結果を返すことがあります。」
分かりにくいのですが、開始日の日(day)よりも終了日の日(day)が下回る場合は、不正確な結果を返すことがあるようです。