ExcelのEDATE関数の使い方をお探しですね。
広告
Excelで「〇ヶ月後」を自動計算!EDATE関数で契約更新日を楽に管理する方法
契約の更新日や支払期限、点検の予定日などをExcelで管理していると、「契約開始から6ヶ月後っていつだっけ?」「満了日の3ヶ月前に連絡しなきゃ…」と、カレンダーを見ながら数える場面、ありますよね。
でも、月によって日数は28日だったり30日だったり31日だったりするので、「30日×6ヶ月=180日後」みたいに単純計算すると、実際の日付とズレちゃうんです。
そんなときに便利なのが**EDATE関数**です!
この記事では、EDATE関数を使って「〇ヶ月後・前」や「〇年後」の日付を正確に計算する方法を、実際の契約管理に使える例を交えて説明していきますね。
EDATE関数って何?月単位の日付計算が超ラクになる関数です
EDATE関数は、指定した日付から「何ヶ月後」または「何ヶ月前」の日付を自動で出してくれるExcel関数です。
たとえば、契約開始日が2026年4月1日で、契約期間が6ヶ月だとします。
このとき、EDATE関数を使えば「2026年10月1日」が自動で計算できるんです。
しかも、マイナスの数字を入れれば過去の日付も計算できます。
「契約満了日の3ヶ月前に更新確認したい」とか「請求日の1ヶ月前を準備期限にしたい」なんてときにも使えて便利ですよ。
**基本の書き方**はこんな感じです:
“`
=EDATE(開始日, 月数)
“`
– **開始日**:基準になる日付
– **月数**:何ヶ月ずらすか(未来なら正の数、過去なら負の数)
例えば、A2セルに「2026/4/1」が入っているとき、
– 3ヶ月後なら:`=EDATE(A2,3)`
– 3ヶ月前なら:`=EDATE(A2,-3)`
と入力すればOKです。
**なんでEDATE関数が便利なの?**
それは、月の日数の違いをExcelが自動で処理してくれるからなんです。
「1ヶ月後=30日後」として計算すると、1月・2月・3月をまたぐときに日付がズレちゃいますよね。
でもEDATE関数なら、ちゃんと「月単位」で計算してくれます。
例えば、3月21日の3ヶ月後は6月21日。
ちゃんと「同じ日」になるように計算してくれるんです。
契約管理みたいに日付の正確さが大事な仕事では、普通の足し算よりEDATE関数を使った方が安心ですよ。
EDATE関数の基本的な使い方:「〇ヶ月後・前」「〇年後」を計算してみよう
「〇ヶ月後」を計算する
EDATE関数で「〇ヶ月後」を計算するのは簡単です。
開始日のセルと月数を指定するだけ。
**例:**
– A2セルに契約開始日「2026/4/1」
– B2セルに契約期間の月数「12」
C2セルに`=EDATE(A2,B2)`と入力すれば、12ヶ月後の日付が出てきます。
契約ごとに期間が6ヶ月だったり12ヶ月だったり違う場合でも、B列に月数を入れておけば、数式を下にコピーするだけで一括計算できちゃいます。
「〇ヶ月前」を計算する
「〇ヶ月前」を求めたいときは、月数にマイナスを付けます。
**例:**
契約満了日の2ヶ月前を更新案内の開始日にしたいとき、満了日がA2セルにあるなら:
“`
=EDATE(A2,-2)
“`
これで、満了日から2ヶ月前の同じ日が表示されます。
更新の連絡や社内の承認、見積書の作成、解約通知の期限など、満了日より前にやらなきゃいけない作業の期限を逆算するのにすごく便利です。
「〇年後」を計算する
「〇年後」もEDATE関数で計算できます。
EDATE関数は月数で指定する関数なので、年数を月数に変換すればOK:
– 1年後=12ヶ月後
– 2年後=24ヶ月後
– 3年後=36ヶ月後
**例:**
– 1年後:`=EDATE(A2,12)`
– 3年後:`=EDATE(A2,36)`
もし「年数」で管理している表なら、B2セルに契約年数が入っている場合、`=EDATE(A2,B2*12)`とすれば、年数を月数に変換して計算できます。
ちょっとした注意点
関数の中に日付を直接書く場合は、こんな感じでダブルクォーテーション(“)で囲みます:
“`
=EDATE(“2026/4/1”,6)
“`
`=EDATE(2026/4/1,6)`みたいに書くと、Excelが割り算と勘違いしちゃうことがあるので注意です。
実際の仕事では、日付を直接書くより、A列に契約開始日、B列に契約期間、C列に更新日…みたいにセル参照を使った方が管理しやすいですよ。
後から修正するときも楽ですしね。
実務での使い方:契約更新日の管理表を作ってみよう
契約更新日を管理するなら、「契約開始日」「契約期間」「契約満了日」「更新確認日」を分けて表にすると、EDATE関数の便利さを実感できます。
**表の例:**
| A列 | B列 | C列 | D列 | E列 |
|——|——|——|——|——|
| 取引先名 | 契約開始日 | 契約期間(月) | 契約満了日 | 更新確認日 |
| A社 | 2026/4/1 | 12 | | |
**数式を入れる:**
– D2セル(契約満了日):`=EDATE(B2,C2)`
– E2セル(更新確認日):`=EDATE(D2,-2)` ※満了日の2ヶ月前
これで、契約満了日とその2ヶ月前の確認日が自動で計算されます。
契約件数が増えても、いちいちカレンダーを見なくて済むんです。
更新漏れを防ぐコツ
契約管理で大事なのは、満了日だけじゃなくて「いつ動き始めるか」も見えるようにすることです。
更新するかどうかの確認、見積条件の見直し、社内承認、相手先への連絡…これって満了日当日に始めても間に合わないですよね。
だから、EDATE関数で満了日を出すだけじゃなく、満了日の1ヶ月前・2ヶ月前・3ヶ月前みたいに、通知用の日付も一緒に計算しておくと更新漏れを防げます。
ただの一覧表じゃなくて、「行動につながる管理表」になるのがEDATE関数のいいところです。
条件付き書式で期限が近い契約を目立たせる
さらに便利にするなら、条件付き書式と組み合わせるのがおすすめ。
期限が近い契約を色で目立たせれば、見落としを防げます。
**設定例:**
– 契約満了日が今日から30日以内→セルを黄色に
– 期限を過ぎている→セルを赤色に
条件の数式例(満了日がD2セルの場合):
“`
=AND(D2>=TODAY(),D2<=TODAY()+30)
```
EDATE関数で正確な日付を計算して、条件付き書式で見落とし防止。
この組み合わせで契約管理がグッと楽になりますよ。
他にもこんな場面で使えます
契約更新日以外にも、EDATE関数はいろんな期限管理に使えます:
– サブスクやライセンス契約の更新日管理
– 保守契約、保証期間、点検予定日の計算
– 請求日から数ヶ月後の支払期日や分割払いの管理
– 入社日から3ヶ月後の試用期間終了日、1年後の面談日管理
こんな感じで、「月単位で期限が決まる仕事」ならEDATE関数が活躍します。
日数単位の計算なら普通の足し算でもいいんですけど、月単位の契約や期限では月ごとの日数差が問題になるんですよね。
特に契約書や請求書に関わる日付はミスがトラブルにつながることもあるので、Excelで自動化しておく価値は大きいです。
使うときの注意点:月末処理・表示形式・他の関数との使い分け
月末の日付はどうなる?
EDATE関数を使うとき、特に注意したいのが月末の日付です。
例えば、2026年1月31日の1ヶ月後を計算すると…2月31日なんて存在しないですよね。
このとき、Excelは自動的に**2月の末日**を返します。
平年なら2月28日、うるう年なら2月29日になります。
これはエラーじゃなくて、EDATE関数の正しい動きです。
月末契約が多い場合は、この仕組みを知っておくと「なんで31日にならないの?」っていう混乱を避けられますよ。
「月末日」を求めたいときはEOMONTH関数
逆に、「〇ヶ月後の同じ日」じゃなくて「〇ヶ月後の月末日」を常に求めたいときは、**EOMONTH関数**を使った方がいいです。
– **EDATE関数**:基準日と同じ日を目指して月を移動
– **EOMONTH関数**:指定した月数だけ前後した月の末日を返す
**例:**
2026年4月15日の場合
– 翌月の同日(5月15日):`=EDATE(A2,1)`
– 翌月末(5月31日):`=EOMONTH(A2,1)`
契約満了日を「開始日と同じ日」にするのか、「対象月の月末」にするのかで、関数を使い分けましょう。
日付が数字で表示されちゃった!
EDATE関数の結果が「45678」みたいな数字で表示されることがあります。
これ、計算が間違ってるわけじゃないんです。
Excelが日付を内部的に「シリアル値」という連番の数値で管理してるからなんですね。
セルの表示形式が「標準」や「数値」になってるだけなので、直し方は簡単:
1. 該当セルを選択
2. ホームタブの表示形式から「短い日付形式」または「長い日付形式」を選ぶ
これで普通の日付として表示されます。
日付関数を使うときは、数式だけじゃなく表示形式も確認しましょうね。
#VALUE!エラーが出たら
`#VALUE!`エラーが出る場合は、開始日か月数がExcelに正しく認識されてない可能性があります。
**よくある原因:**
– 開始日が文字列扱いになってる
– 日付を直接入力するときにダブルクォーテーションを忘れてる
– 月数のセルに文字が混ざってる
セル参照を使ってる場合は、参照先のセルが本当に日付として扱われてるか確認してください。
見た目は日付でも、実際には文字列として入力されてるケースがあるので、必要に応じてDATEVALUE関数や「区切り位置」機能で日付データに変換しましょう。
DATE関数との使い分け
年単位の日付計算では、EDATE関数のほかに**DATE関数**を使う方法もあります。
**例:**
A2セルの日付から5年後を求める場合
“`
=DATE(YEAR(A2)+5,MONTH(A2),DAY(A2))
“`
でも、契約更新日みたいに「1年後」「2年後」を月数に換算できる場面なら、`=EDATE(A2,12)`や`=EDATE(A2,24)`の方がシンプルです。
一方で、「3年後の1日前」とか「翌年の同月末」みたいに細かい条件を加えたいときは、DATE関数やEOMONTH関数と組み合わせると柔軟に対応できますよ。
まとめ:EDATE関数で契約管理を効率化しよう
EDATE関数で「〇ヶ月後・前」「〇年後」の日付を計算できるようになると、契約更新日の管理がグッと楽になります。
手作業でカレンダーを数える方法だと、件数が少ないうちはなんとかなっても、契約数が増えるほど確認漏れや入力ミスのリスクが高まりますよね。
EDATE関数を使えば、開始日と月数を入れるだけで正確な日付を自動計算できます。
さらに条件付き書式やTODAY関数と組み合わせれば、期限が近い契約もすぐ見つけられます。
契約管理表、請求管理表、点検スケジュール表など、月単位の日付が出てくるExcelファイルでは、ぜひEDATE関数を活用してみてください。
一度設定しちゃえば、あとは数字を入れるだけで自動計算。
仕事がずっと楽になりますよ!
広告
