日数を数える基本の関数は「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")
【〇年〇ヵ月〇日と表示したい】
上記のようにただ日数を出すだけなら良いのですが、何年何ヵ月何日と表示したい場合も多いと思います。
同じDATEDIF関数を重ねていけば簡単に表示できます。
=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"ヶ月"&DATEDIF(A2,B2,"MD")&"日"
長い式になりますが、よく見るとDATEDIF関数を繰り返し「&」の記号で繋げているだけです。
さらにその間に「年」「ヵ月」「日」も「&」で繋げます。(文字列にはダブルクォーテーション[""]で挟むのを忘れずに)
※既知の問題
Microsoft HPより抜粋
「"MD" 引数は、負の値、ゼロ、または不正確な結果を返すことがあります。」
分かりにくいのですが、開始日の日(day)よりも終了日の日(day)が下回る場合は、不正確な結果を返すことがあるようです。