DATEDIF関数:二つの日付間の年数、月数、日数を取得する
DATEDIF 関数は Excel で用意されている関数の一つで、二つの指定した日付の間の年数、月数、日数を取得します。ここでは Excel における DATEDIF 関数の使い方について解説します。
※ Excel の対応バージョン : 365 web 2021 2019 2016 2013 2010 2007
(Last modified: )
DATEDIF関数の使い方
DATEDIF
関数は引数で指定した二つの日付間の年数、月数、日数を取得します。
1 番目の引数に開始の日付、 2 番目の引数に終了の日付をそれぞれシリアル値で指定します。 3 番目の引数でどんな値を取得するのかを文字列で指定します。指定可能な文字列は次のいずれかです。
引数 | 戻り値 |
---|---|
"Y" | 開始日から終了日までの年数 |
"M" | 開始日から終了日までの月数 |
"D" | 開始日から終了日までの日数 |
"MD" | 開始日から終了日までの日数。日付の月数および年数は無視されます |
"YM" | 開始日から終了日までの月数。日付の日数および年数は無視されます |
"YD" | 開始日から終了日までの日数。日付の年数は無視されます |
それぞれもう少し詳しく解説します。
"Y"
開始日から終了日までの満年数です。例えば 2001/05/10 から 2005/08/15 だった場合、年数は 4 となります。また 2001/05/10 から 2005/03/04 だった場合、終了日の 3 月 4 日が開始日の 5 月 10 日を超えていないので年数は 3 となります。
"M"
開始日から終了日までの満月数です。例えば 2001/05/10 から 2002/08/15 だった場合、月数は 15 となります。また 2001/05/10 から 2002/08/03 だった場合、終了日の 3 日が開始日 10 日を超えていないので月数は 14 となります。
"D"
開始日から終了日までの日数です。例えば 2001/05/10 から 2001/07/24 だった場合、日数は 75 となります。また 2001/05/10 から 2002/08/15 だった場合、日数は 462 となります。
"MD"
開始日から終了日までの日数です。年と月は無視されて計算されます。例えば 2001/05/10 から 2001/05/25 だった場合、 10 日から 25 日までの日数は 15 となります。また 2001/05/10 から 2003/10/18 だった場合、 10 日から 18 日までの日数は 8 となります。
開始日の日の値が終了日の日の値よりも大きい場合、月の日数は終了日の前月の日数として計算されます。例えば 2001/05/10 から 2002/08/03 だった場合、 2002年7月 の日数が 31 日なので、 10 日から 3 日までの日数は 31 - 10 + 3 = 24 となります。また 2001/05/10 から 2002/07/03 だった場合、 2002年6月 の日数が 30 日なので、 10 日から 3日までの日数は 30 - 10 + 3 = 23 となります。
"YM"
開始日から終了日までの月数です。年は無視されて計算されます。例えば 2001/05/10 から 2002/08/15 だった場合、 5 月 10 日から 8 月 15 日までの月数は 3 となりますが、 2001/05/10 から 2002/08/02 だった場合、 5 月 10 日から 8 月 2 日までの月数は 2 となります。
開始日の月の値が終了日の月の値よりも大きい場合、例えば 2001/08/10 から 2003/05/15 だった場合、 8 月 10 日 から 5 月 15 日までの月数は 12 - 8 + 5 = 9 となります。
"YD"
開始日から終了日までの日数です。年は無視されて計算されます。例えば 2001/05/10 から 2002/08/15 だった場合、 5 月 10 日から 8 月 15 日までの日数は 97 となります。また 2001/12/10 から 2004/02/05 だった場合、 12 月 10 日から 2 月 5 日までの日数は 57 となります。
DATEDIF関数の使い方
DATEDIF
関数は関数の一覧にないため、セルの数式として使用する場合にはすべて手入力で入力を行う必要があります。「関数の挿入」ダイアログなどからも入力することはできません。
例えば次のようなデータを元に年数および日数を取得してみます。
年数を取得する E3 セルに次のように数式を直接入力してください。 1 番目の引数には開始日を表す日付が入力されている B3 セル、 2 番目の引数には終了日を表す日付が入力されている C3 セル、 3 番目の引数には単位を表す文字列が入力されている D3 セルを指定します。
=DATEDIF(B3,C3,D3)
Enter
キーを押すと E3 セルには次のように表示されます。
同じように日数を取得する E4 セルに次のように数式を直接入力してください。
=DATEDIF(B4,C4,D4)
Enter
キーを押すと E3 セルには次のように表示されます。
日付の値を直接指定する場合
DATEDIF
関数の引数に、セルを指定するのではなく直接日付の値を指定する場合は "2021/01/18" のようにダブルクオーテーションで囲んで指定してください。
=DATEDIF("2020/10/04","2021/01/16","D") --> 104
または日付を表すシリアル値を数値として指定することもできます。 "2020/10/04" のシリアル値は 44108 で、 "2021/01/16" のシリアル値は 44212 なので次のように指定します。
=DATEDIF(44108,44212,"D") --> 104
※ 日付や時刻に関するシリアル値については「Excelにおける日付と時刻のシリアル値とは」を参照されてください。
DATEDIF関数の便利な利用方法
DATEDIF
関数の便利な利用方法を下記の記事で紹介しています。
-- --
Excel における DATEDIF 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。