2 つの日付間の日数、月数、年数を計算します。
警告
- Excel では、Lotus 1-2-3 の古いブックをサポートするために、DATEDIF 関数が用意されています。 DATEDIF 関数では、特定のシナリオで誤った計算結果を返すことがあります。 詳細については、この記事の既知の問題のセクションを参照してください。
- ヒント: 2 つの日付間の日数を求める場合は、前の日付から後の日付を減算するだけです。 これは、日付が Excel に数値として保存されるために動作します。
書式
DATEDIF(開始日,終了日,単位)
| 引数 | 説明 |
|---|---|
|
start_date 必須 |
特定の期間の開始日または開始日を表す日付。 日付は、文字列として二重引用符で囲んだ文字列 (たとえば、"2001/1/30")、シリアル番号 (たとえば、36921、1900 年の日付システムを使用している場合は、2001 年 1 月 30 日を表します)、または他の数式や関数の結果 (たとえば、DATEVALUE("2001/1/30")) として入力できます。 |
|
end_date 必須 |
期間の最終日 (終了日) を表す日付。 |
| 単位 | 返したい情報の種類。ここで、Unit****Returns"Y"期間内の完全な年数。"M"期間内の完全な月数。"D"期間の日数。"MD「start_dateとend_dateの日の差。 日付の月数および年数は無視されます。 重要: "MD" 引数には既知の制限があるため、使用はお勧めしません。 以下の既知の問題のセクションを参照してください。"YM「start_date月とend_date月の差。 日付の日と年は無視され、「YD」のstart_dateとend_dateの日の差。 日付の年数は無視されます。 |
解説
- 日付は連続したシリアル値として保存され、日付の計算が行われています。 既定では、1900 年 1 月 1 日がシリアル値 1 として保存され、2008 年 1 月 1 日は 1900 年 1 月 1 日から 39,447 日後に当たるので、シリアル値は 39448 になります。
- DATEDIF 関数は年齢を計算する数式で利用すると便利です。
- start_dateがend_dateより大きい場合、結果は #NUM! になります。
例
| 開始日 | 終了日 | 数式 | 説明 (計算結果) |
|---|---|---|---|
| 2001/01/01 | 2003/01/01 | =DATEDIF(開始日,終了日,"Y") | 期間内の 2 年 (2) |
| 2001/06/01 | 2002/08/15 | =DATEDIF(開始日,終了日,"D") | 2001/6/1 から 2002/8/15 までの 440 日 (440) |
| 2001/06/01 | 2002/08/15 | =DATEDIF(開始日,終了日,"YD") | 日付の年数は無視されるため、6/1 から 8/15 までの 75 日 (75) |
既知の問題
"MD" 引数は、負の値、ゼロ、または不正確な結果を返すことがあります。 1 か月が過ぎた後で、残りの日数を計算するには、こちらの回避策をお試しください。
この数式は、セル E17 の元の終了日 (2016 年 5 月 6 日) から終了月の最初の日 (2016 年 5 月 1 日) を減算します。 この方法を次に示します。まず、DATE 関数で、2016 年 5 月 1 日という日付を作成します。 これは、セル E17 の年とセル E17 の月を使用して作成します。
1 は、その月の第 1 日目を示します。 DATE 関数の結果は 2016 年 5 月 1 日を返します。 その値をセル E17 にある元の最終日 2016 年 5 月 6 日から減算します。 2016 年 5 月 6 日から 2016 年 5 月 1 日を引いた値は 5 日です。
補足説明
Excel 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。