○カ月後/前の日付を求める…EDATE関数

[Excel 2016/2013/2010]

EDATE関数を使用すると、指定した日付を基準に、○カ月後や○カ月前の日付を求めることができます。

スポンサーリンク

作例…納品日とレンタル期間から返却期限を計算する

図1では、「納品日」に「契約月数」を加えて、「返却期限」を求めています。EDATE関数の引数[開始日]に「納品日」のセルC3、[]に「契約月数」のセルD3を指定します。

[開始日]から[月]数前後の日付を求める
=EDATE(開始日)

セルE3 | =EDATE(C3,D3)

図1 「納品日」の「契約月数」後の日付をEDATE関数で求めて「返却期限」とする。

メモ

日付の表示形式を設定しよう
新しいセル(表示形式が[標準]のセル)にEDATE関数を入力すると、「シリアル値」と呼ばれる数値が表示されます。 日付の表示に変えるには、日付の表示形式を設定してください。

図2 EDATE関数を入力したセルを選択して、[ホーム]タブの[表示形式]の一覧から[短い日付形式]を選択すると、日付表示に変わる。

関数解説…EDATE関数

書式

=EDATE(開始日)

開始日]から[]数後、または[]数前の日付を求めます。結果はシリアル値で返されるので、適宜日付の表示形式を設定する必要があります。

引数

引数 指定 説明
開始日 必須 計算の基準になる日付を指定
必須 月数を指定。正数を指定すると月数後、負数を指定すると月数前の日付が求められる

使用例

数式 結果 説明
=EDATE("2017/11/18",-2) 2017/9/18 「2017/11/18」の2カ月前
=EDATE("2017/11/18",-1) 2017/10/18 「2017/11/18」の1カ月前
=EDATE("2017/11/18",0) 2017/11/18 「2017/11/18」当日
=EDATE("2017/11/18",1) 2017/12/18 「2017/11/18」の1カ月後
=EDATE("2017/11/18",2) 2018/1/18 「2017/11/18」の2カ月後
=EDATE("2017/10/31",1) 2017/11/30 「2017/11/31」は存在しないので
月末日の「2017/11/30」が返される

29日、30日、31日に注意!

1カ月の日数はバラバラなので、29日、30日、31日の○カ月前や○カ月後を求める場合、該当の日付が存在しないことがあります。EDATE関数は、該当の日付がない場合に、月末の日付を返します。

  • 28日:常に28日の日付が返る
  • 29日:うるう年以外の年の2月は28日の日付が返る
  • 30日:2月は28日か29日の日付が返る
  • 31日:2月は28日か29日、4、6、9、11月が30日の日付が返る

図3 29日、30日、31日の日付の場合のEDATE関数の挙動

スポンサーリンク

関連記事