更新日:、 作成日:

エクセル EDATE 関数:月末を考慮して数ヶ月後の日付を計算する

はじめに

エクセルの EDATE 関数の使い方を紹介します。

EDATE 関数は月末を考慮して数ヶ月後の日付を表す数値を取得します。日付の実際の値は数値です。それをセルの書式設定から日付形式に表示できます。

=EDATE("2000/1/1",1) のようにして、1 ヵ月後の 2000/2/1 を取得できます。

=EDATE("2000/1/31",1) のようにして、月末を考慮した 1 ヵ月後の 2000/2/29 を取得できます。

数ヶ月後の日付を取得したいときに使用します。

月末を入力するには「EOMONTH 関数」を使用します。
月末や数日後の日付を入力する方法は「日付を自動で入力する」をご覧ください。

EDATE 関数の引数

EDATE(開始日, )
開始日から指定した数後の日付を月末を超えないように取得します。

引数「開始日」基準となる日付を指定します。配列スピル化
引数「月」引数「開始日」の何ヶ月後の日付を取得するかの月数を指定します。配列スピル化

配列スピル化:配列を指定すると結果が「スピル」します。セルの範囲はスピルできません。

使い方

EDATE 関数の使い方を紹介します。

1 日の数ヵ月後を取得する

3/1 の数ヵ月後の日付を取得します。「DATE 関数」を使用しても数ヵ月後を取得できます。

=EDATE(B3,C3)
=DATE(YEAR(B4),MONTH(B4)+C4,DAY(B4))

結果が数値になっているのは、日付の実際の値は数値なのでその値を取得します。セルの書式設定から日付形式で表示できます。

11

月末の数ヵ月後を取得する

月末 3/31 の数ヵ月後の日付を取得します。「DATE 関数」を使用しても数ヵ月後を取得できます。

=EDATE(B3,C3)
=DATE(YEAR(B4),MONTH(B4)+C4,DAY(B4))

月末を取得する関数ではないので、2/29 の 1 ヵ月後は 3/29 です。必ず月末を取得するには「EOMONTH 関数」を使用します。

12

解説

日付の実際の値は数値なのでその値を取得します。2000/1/1 の実際の値は 36526 です。

結果を日付形式で表示するにはセルの書式設定から日付を選択します。

date-format

引数「開始日」に含まれている時刻は無視されます。

引数「開始日」が「DATEVALUE 関数」や「TIMEVALUE 関数」で日付や時間に変換できない文字列のときは、エラー #VALUE! になります。

引数「月」が 1 なら、引数「開始日」の 1 ヵ月後の日付を取得します。その日が存在しないときは、その月の月末になります。1/312/28

引数「月」がマイナスの値なら、引数「開始日」の前の月を取得します。

結果がエクセルで扱えない日付になるときはエラー #NUM! になります。