LEVEL 4 計算の基礎を固める 中級
Lesson 039

EDATE関数について

練習用Excelファイル lesson039-practice.xlsx

練習用ファイルは、パソコンからダウンロードしてください。

EDATE関数について

ある日付から、●か月後の日付を計算したい」というシーン、よくあります。

  • 契約日から3か月後の更新日
  • 入社日から6か月後の試用期間明け
  • 商品の購入日から1年後の保証期限

このようなときに使うのが、EDATE関数(イーデート関数) です。

前回のTODAY関数が「今日」を出す関数なら、こちらは「ある日付を起点に、ずらした日付」を出す関数です。


EDATE関数の構文

=EDATE(開始日, 月数)

  • 開始日:基準となる日付
  • 月数:何か月後を計算するか(マイナスにすると、何か月前)

たとえば、A1 に「2025/5/10」、B1 に「3」と入っているとき、こうなります。

:::excel
A1=2025/5/10
B1=3
C1==EDATE(A1,B1) -> 2025/8/10 *
:::

5月10日の3か月後、「2025/8/10」が返りました。引数は「開始日」と「月数」の2つだけ。シンプルです。


マイナスを指定すると「何か月前」

3か月前」を計算したいときは、月数にマイナスを指定します。

:::excel
A1=2025/5/10
C1==EDATE(A1,-3) -> 2025/2/10 *
:::

A1が「2025/5/10」なら、3か月前の「2025/2/10」。プラスで未来、マイナスで過去。前回の日付の引き算と同じく、符号で方向が変わると覚えてください。


月末日の扱い

ここが EDATE関数の 少しややこしいポイント です。

1月31日の1か月後」は、何日でしょうか。

普通に考えると「2月31日」となりそうですが、2月に31日はありません。このとき、EDATE関数はこう返します。

:::excel
A1=2025/1/31
C1==EDATE(A1,1) -> 2025/2/28 *
:::

2月の最終日「2025/2/28」(うるう年なら2/29)が返りました。「その月の最終日に丸める」 というルールです。

ただし、注意が必要です。「1月30日の1か月後」も、結果は同じ「2月28日」になります。

:::excel
A1=2025/1/30
C1==EDATE(A1,1) -> 2025/2/28 *
:::

1月30日も1月31日も、1か月後はどちらも2月28日。「31日まである月の30日・31日 → 翌月の月末」とまとめて扱われるためです。

毎月の月末日で更新日を計算したい」という用途には、この丸め方だと少し不便です。その場合は、次のレッスンで扱う EOMONTH関数 のほうが向いています。

EDATEは「同じ日にちを保ちたい」とき、EOMONTHは「月末をそろえたい」とき、と整理しておくと迷いません。


ちょっとした実務シーン

社員の試用期間を管理するシートを作っています。

  • A列:社員名
  • B列:入社日
  • C列:試用期間(月数、たとえば「3」)
  • D列:試用期間明け日

このとき、D列に「=EDATE(B2, C2)」と入れて下にコピーすれば、各社員の試用期間明け日が一発で計算されます。

:::excel
A1=社員名
B1=入社日
C1=試用期間
D1=明け日
A2=田中
B2=2025/4/1
C2=3
D2==EDATE(B2,C2) -> 2025/7/1 *
A3=鈴木
B3=2025/5/15
C3=6
D3==EDATE(B3,C3) -> 2025/11/15 *
A4=佐藤
B4=2025/6/10
C4=3
D4==EDATE(B4,C4) -> 2025/9/10 *
:::

基準日から先の日付を出力する。つまり「期間」という時間の枠を作ってくれるので、とても便利ですよね。


年単位の計算

EDATE関数は「月数」だけを指定します。「年単位」で計算したい場合は、月数に12の倍数を入力すればOKです。

:::excel
A1=2025/5/10
C1==EDATE(A1,12) -> 2026/5/10 *
C2==EDATE(A1,24) -> 2027/5/10 *
C3==EDATE(A1,-36) -> 2022/5/10 *
:::

12なら1年後、24なら2年後、-36なら3年前。「年 × 12」と覚えておけば、保証期限や契約更新の計算にそのまま使えます。


結果が「数字」で表示されてしまったら

EDATE関数を入れたセルが、「45879」のような数字になってしまうことがあります。

:::excel
A1=2025/5/10
C1==EDATE(A1,3) -> 45879 *
:::

これは、レッスン004で学んだ シリアル値 です。Excelは日付を「1900年1月1日から数えた通し番号」で管理しているのでしたね。

書式が「日付」ではなく「標準」になっていると、その通し番号がそのまま見えてしまいます。

このときは、[Ctrl] + [1] でセルの書式設定を開いて、「日付」を選んでください。すぐに見慣れた表示に戻ります。

計算自体は正しくできているので、慌てなくて大丈夫です。


まとめ

  • EDATE関数で「N か月後 / N か月前」の日付を計算
  • 構文:=EDATE(開始日, 月数)
  • マイナスを指定すれば、過去の日付
  • 月末日の扱いに少しクセがある(30日・31日 → 翌月の月末に丸まる)
  • 年単位は「月数 × 12」で対応
  • 結果が数字になったら、書式を「日付」に(シリアル値)

次回は、EDATEと兄弟のような関係の EOMONTH関数。「月末日」をきれいに出す関数です。期限を示すのによく月末を指定することもありますよね。


ショートカット

  • セルの書式設定:[Ctrl] + [1]
次のLessonへ Lesson 040 EOMONTH関数について