【Excel】エクセルで3年後の日付を計算・表示(関数で3年足す・2年後・前日・1日前も・3か月後も自動計算・DATE・EDATE・DATEDIF関数)方法 | モアイライフ(more E life)

【Excel】エクセルで3年後の日付を計算・表示(関数で3年足す・2年後・前日・1日前も・3か月後も自動計算・DATE・EDATE・DATEDIF関数)方法

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

エクセルで「契約開始日から3年後の期限を自動で出したい」「3か月後の日付をサッと計算したい」と思ったことはありませんか?

この記事では【Excel】エクセルで3年後・3か月後の日付を計算する(DATE・EDATE・DATEDIF関数)方法について解説していきます。

ポイントは

・DATE関数でYEAR・MONTH・DAY関数を組み合わせて3年後・3か月後の日付を計算する
・EDATE関数で指定した月数後の日付をシンプルに求める
・DATEDIF関数で2つの日付の差を年・月・日単位で求める

です。

それでは詳しく見ていきましょう。

 

 

スポンサーリンク

エクセルで3年後・3か月後の日付を計算する方法1【DATE関数とYEAR・MONTH・DAY関数の組み合わせ】

まずはサンプルデータを確認しましょう。

以下のような契約管理表を使って解説していきます。

 

 

1行目にヘッダーがあり、2行目以降にデータが入力されている前提で解説します。

DATE関数は「年・月・日」をそれぞれ別の引数として受け取り、日付データを生成する関数です。
YEAR・MONTH・DAY関数と組み合わせることで、元の日付から年数や月数を加算した日付を柔軟に計算できます
加算する値を直接数値で指定するだけなので、直感的に理解しやすい方法です。

DATE関数の基本構文

=DATE(年, 月, 日)

=DATE(YEAR(日付)+加算年数, MONTH(日付), DAY(日付)) ←3年後の場合

=DATE(YEAR(日付), MONTH(日付)+加算月数, DAY(日付)) ←3か月後の場合

YEAR関数は日付から「年」の数値を取り出し、MONTH関数は「月」、DAY関数は「日」をそれぞれ取り出します。
取り出した値に加算したい数を足してDATE関数に渡すことで、目的の日付が計算されます。

3年後の日付を計算する数式と解説

契約開始日(B2)の3年後をC2セルに表示するには、以下の数式を入力します。

=DATE(YEAR(B2)+3, MONTH(B2), DAY(B2))

「YEAR(B2)+3」でB2セルの年の値に3を加算します。

「MONTH(B2)」と「DAY(B2)」はそのまま元の月・日を取り出して使います。
この3つをDATE関数に渡すことで、月と日を変えずに3年後の日付が生成されます。

マグロ定期便(2022/4/15)の場合は「2025/4/15」、カツオ年間パック(2023/1/31)の場合は「2026/1/31」が返されます。

 

3か月後の日付を計算する数式と解説

契約開始日(B2)の3か月後をD2セルに表示するには、以下の数式を入力します。

=DATE(YEAR(B2), MONTH(B2)+3, DAY(B2))

「MONTH(B2)+3」で月の値に3を加算します。

月の値が12を超えた場合でも、DATE関数が自動的に翌年に繰り上げて処理してくれます。

たとえばハラス月次プラン(2023/11/30)の3か月後は「2024/2/30」となりますが、2月30日は存在しないため自動的に「2024/3/1」に繰り上がります。

月末日付の扱いには注意が必要で、月によって日数が異なるため意図しない日付になるケースがあります

 

【操作のポイント】
DATE関数は月に13以上・日に32以上の値が入っても自動的に翌月・翌年に繰り上げて計算してくれます。
逆に0や負の値を入れると前月・前年に繰り下がるため、「3か月前」の計算には「MONTH(B2)-3」と書くだけでOKです。

 

 

 

エクセルで3年後・3か月後の日付を計算する方法2【EDATE関数で月単位の計算をシンプルに】

DATE関数とMONTH関数の組み合わせでも月数の加算はできますが、EDATE関数を使うとさらにシンプルな数式で同じ結果を得ることができます

EDATE関数は「指定した日付から何か月後(または何か月前)の日付」を返す専用の関数で、月単位の計算に特化しています。

月末日付の繰り上がりも自動で処理されるため、月末が絡む計算でも安心して使えます。

 

EDATE関数の基本構文

=EDATE(開始日, 月数)

第1引数に基準となる日付、第2引数に加算する月数を指定します。
前の月を求めたい場合は月数に負の値を指定します。

年単位で計算したい場合は、1年=12か月として月数を計算して指定します。

 

3か月後の日付を計算する数式と解説

B2セルの3か月後をEDATE関数で求める場合、D2セルに以下の数式を入力します。

=EDATE(B2, 3)

非常にシンプルな数式です。
B2が2022/4/15であれば「2022/7/15」が返されます。

カツオ年間パック(2023/1/31)の3か月後は「2023/4/30」となります。

4月は30日までしかないため、DATE関数を使った場合と異なり、EDATE関数は月末を超えた場合に翌月への繰り上げではなくその月の末日を返すという特徴があります。

月末日を基準にした契約管理などでは、EDATE関数の方が意図した結果になりやすいでしょう。

 

3年後の日付をEDATE関数で計算する数式と解説

3年後は12か月×3=36か月後として計算します。

C2セルに以下の数式を入力します。

=EDATE(B2, 36)

マグロ定期便(2022/4/15)の場合は「2025/4/15」、ボルト保守契約(2024/2/29)の場合は「2027/2/28」が返されます。

2027年2月29日は存在しないため、EDATE関数は自動的にその月の末日である2月28日を返します。

うるう年を含む日付の計算でも正確に処理してくれる点が、EDATE関数の大きな強みです。

【操作のポイント】
EDATE関数の結果はシリアル値(数値)で返されることがあります。
セルの表示形式が「標準」のままだと数値で表示されてしまうため、結果のセルを選択して「セルの書式設定」から日付形式に変更しておきましょう。

 

 

エクセルで3年後・3か月後の日付を計算する方法3【DATEDIF関数で期間の差を計算する】

ここまでは「〇年後・〇か月後の日付を求める」方法を解説しましたが、逆に「2つの日付の間が何年・何か月・何日あるか」を調べたいケースもあります。

DATEDIF関数を使うと、開始日と終了日を指定するだけで、その間の期間を年・月・日のいずれかの単位で取り出せます

たとえば契約の残存期間の確認や、年齢の計算などに活用できます。

 

DATEDIF関数の基本構文

=DATEDIF(開始日, 終了日, 単位)

単位の種類:
“Y” → 満年数
“M” → 満月数
“D” → 日数
“YM” → 年を無視した月数(1年未満の月数)
“MD” → 年と月を無視した日数
“YD” → 年を無視した日数

単位を変えることで、同じ2つの日付から異なる粒度の情報を取り出せます。

「Y」「M」「D」の3つが基本で、「YM」「MD」「YD」は年齢の「〇歳〇か月〇日」のような複合表示に使います。

 

実際の数式と解説

サンプルデータのB列の契約開始日と、今日の日付(TODAY関数で取得)の間が何年・何か月あるかをそれぞれ求めてみましょう。

経過年数を求める場合はE2セルに以下の数式を入力します。

=DATEDIF(B2, TODAY(), “Y”)

経過月数(年を無視した端数の月数)を求める場合はF2セルに以下の数式を入力します。

=DATEDIF(B2, TODAY(), “YM”)

この2つを組み合わせて「〇年〇か月」という形でG2セルに表示する場合は以下のようになります。

=DATEDIF(B2, TODAY(), “Y”) & “年” & DATEDIF(B2, TODAY(), “YM”) & “か月”

「&」演算子で文字列を結合することで、「2年7か月」のような読みやすい形式で表示できます。
マグロ定期便(2022/4/15)を今日の日付(2026/4/25)と比較すると、経過は「4年0か月」という結果になります。

 

DATEDIF関数の注意点

DATEDIF関数はExcelの公式ドキュメントには掲載されていない「隠し関数」の扱いです。
ただし現在も問題なく動作するため、実務での使用に支障はありません。

注意点として、開始日が終了日より後の日付になっているとエラーが返されます

日付の前後関係を必ず確認してから使うようにしましょう。

【操作のポイント】
DATEDIF関数は関数の入力候補(オートコンプリート)に表示されないため、数式バーに直接手入力する必要があります。
スペルミスに注意しながら「=DATEDIF(」と入力してみてください。

 

 

 

エクセルで3年後の前日の日付を計算する方法【DATE・EDATE関数で1日引く】

契約や定期サービスの管理では、「3年後の日付」そのものより「3年後の前日」、つまり契約満了日を求めたいケースが実務では非常に多いです。

たとえば2022/4/15を起算日とする3年契約の満了日は「2025/4/15」ではなく「2025/4/14」となります。

このような前日の計算も、DATE関数やEDATE関数に少し手を加えるだけで簡単に求めることができます。

 

DATE関数で3年後の前日を計算する数式と解説

DATE関数を使って3年後の前日を求める場合、C2セルに以下の数式を入力します。

=DATE(YEAR(B2)+3, MONTH(B2), DAY(B2)-1)

DAY関数で取り出した「日」の値から1を引くだけです。

「DAY(B2)-1」の結果が0になった場合、つまり元の日付が月初(1日)だった場合でも、DATE関数が自動的に前月の末日に繰り下げて処理してくれます。

マグロ定期便(2022/4/15)であれば「2025/4/14」、ネジ点検サービス(2024/9/1)であれば「2027/8/31」が返されます。

 

EDATE関数で3年後の前日を計算する数式と解説

EDATE関数を使って3年後の前日を求める場合は、以下の数式を入力します。

=EDATE(B2, 36)-1

EDATE関数で3年後(36か月後)の日付を求めた結果から、そのまま1を引くだけです。

エクセルの日付はシリアル値(連番の数値)で管理されているため、日付データから直接「-1」することで前日の日付が得られます。

ボルト保守契約(2024/2/29)の場合、EDATE(B2,36)は「2027/2/28」となり、そこから1を引いた「2027/2/27」が返されます。

月末日を含む日付でも正確に前日を計算できる点がEDATE関数を使う利点です。

 

【操作のポイント】
「3年後の前日」を求める方法はDATE関数・EDATE関数のどちらでも計算できますが、月末日が絡む場合はEDATE関数の方が意図した結果になりやすいです。
実務で使う際は、サンプルデータで結果を確認してからオートフィルで展開するようにしましょう。

まとめ エクセルで3か月後の日付を自動計算・表示(2か月後・関数で3か月足す・前日・1日前も・自動計算・DATE・EDATE・DATEDIF関数)方法

エクセルで3年後・3か月後の日付を計算する方法をまとめると以下のとおりです。

DATE関数とYEAR・MONTH・DAY関数を組み合わせる方法では、元の日付から年・月・日をそれぞれ取り出し、加算したい数値を足してDATE関数に渡すことで任意の日付を計算できます。
「=DATE(YEAR(B2)+3, MONTH(B2), DAY(B2))」が3年後、「=DATE(YEAR(B2), MONTH(B2)+3, DAY(B2))」が3か月後の基本形です。

EDATE関数を使う方法では、「=EDATE(B2, 3)」のようにシンプルな数式で月単位の加算ができます。
3年後は36か月として「=EDATE(B2, 36)」と記述します。
月末日が絡む計算でも自動的に月末に丸めてくれるため、DATE関数よりも安全な結果が得られるケースがあります。

DATEDIF関数を使う方法では、2つの日付の差を年・月・日の単位で求めることができます。
「=DATEDIF(B2, TODAY(), “Y”)」で経過年数、「=DATEDIF(B2, TODAY(), “YM”)」で端数の月数が取得でき、「&」で結合すると「〇年〇か月」形式の表示も簡単に作れます。

それぞれの関数の特性を把握して、用途に合った使い方を選んでみてください。
日付計算をうまく活用することで、契約管理や期限管理がぐっと楽になるはずです。

コメント

スポンサーリンク
タイトルとURLをコピーしました