概要
「指定した月数だけ前後にずらした同日」を求めるなら、EDATE関数が最短です。EDATEは基準日から「nか月後(または前)」の同じ“日”を返します。月末や31日問題も自動調整されるため、契約更新日・支払予定日・満期日など“月単位のスケジュール”に最適です。
基本の使い方
書式
=EDATE(開始日, 月数)
- 開始日:セル参照、DATE、TODAY、NOWなどの日付。
- 月数:正なら未来(+)、負なら過去(−)。例:+3で3か月後、-12で1年前。
例
=EDATE("2025/12/17",3) // 2026/03/17(3か月後)
=EDATE(DATE(2025,12,17),-1) // 2025/11/17(1か月前)
具体例
セル参照で「nか月後」を求める
=EDATE(A2, B2)
A2が基準日、B2が月数。B2に「6」なら6か月後の同日。
TODAYと組み合わせて「来月の同日」
=EDATE(TODAY(),1)
今日の“翌月同日”を返します。
月末開始の調整(31日→月末補正)
=EDATE(DATE(2025,1,31),1)
結果は「2025/02/28」(うるう年なら「2024/02/29」のように自動調整)。
応用テンプレート
契約開始日から満期日(12か月後)
=EDATE(開始日セル,12)
分割支払いの各支払日(1か月刻み)
=EDATE(初回支払日, ROWS($A$1:A1)-1)
縦にオートフィルすれば「初回から毎月1か月ずつ」増やせます。
年単位のずらし(12か月単位)
=EDATE(基準日, 12*年数セル)
年数が2なら24か月後。
指定月後の月末を取りたい(同日ではなく月末)
=EOMONTH(基準日, 月数)
EDATEは“同日”、EOMONTHは“月末”。用途で使い分けます。
よくあるつまずきと対策
結果が数値で表示される
EDATEは日付のシリアル値を返します。結果セルの表示形式を「日付」に変更しましょう(例:yyyy/mm/dd)。
“同日”が存在しない月
基準日が31日などで、移動先の月に同日がない場合は自動で「その月の末日」に調整されます。意図と合えばOK、必ず“末日”を取りたいならEOMONTHを使います。
文字列日付の解釈ズレ
「2025/12/17」を文字列として扱うと環境差で誤解釈の可能性。DATEで生成するか、セルに正しく日付入力を。
時刻付きの扱い
NOWで時刻を含む場合もEDATEは“日付部分”を月ずらしします。表示で時刻が必要なら「表示形式」を日時に。
例題
問題1: A2セルの基準日から3か月後の同日をB2に表示してください。
解答例:
=EDATE(A2,3)
問題2: 今日から1か月前の同日をC2に表示してください。
解答例:
=EDATE(TODAY(),-1)
問題3: D2セルに「2025/1/31」があるとき、1か月後の日付をE2に表示してください(自動調整の確認)。
解答例:
=EDATE(D2,1)
問題4: F2セルの契約開始日から満期(24か月後)の日付をG2に表示してください。
解答例:
=EDATE(F2,24)
問題5: H2セルの基準日から“翌月末日”をI2に表示してください(同日ではなく末日)。
解答例:
=EOMONTH(H2,1)
まとめ
EDATEは「月単位で同日をずらす」ための定番関数です。スケジュール、契約、支払い、更新など“月ベース”の日付ロジックが一行で書けます。31日問題は自動で末日に補正される点を覚え、末日狙いならEOMONTHに切り替える——この使い分けが実務のコツです。
