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]