- Home »
- エクセル関数の技 »
- 何年後、何ヶ月後、何日後の日付を求めたい
更新:2025/3/30;作成:2014/1/10
- 何年後の日付けを求めるとき、単純に年だけを増減すればよいのですが、2月だけはうるう年がありますので注意が必要です。
2/29の何年後かを 3/1にしたいときはDATE関数、 2/28にしたい場合はEDATE関数が使えます。
DATE関数を使う
- 何年後の日付を求めるのにはDATE関数が使えそうです。
ただし、うるう年の2月29日の何年後を求めるとき、うるう年でないときは3月1日になります。
- DATE関数の構文 =DATE(年,月,日) となっています。
何年後・・・ということは、引数の「年」の部分を加減して求めることができます。
- B2セルの日付の1年後、2年後、3年後・・・の日付を求めてみます。
- 引数の年に年数を加えて求めています。
=DATE(YEAR(B2)+1,MONTH(B2),DAY(B2)) 〜 =DATE(YEAR(B2)+5,MONTH(B2),DAY(B2))
または、B3セルに =DATE(YEAR($B$2)+ROW(A1),MONTH($B$2),DAY($B$2)) と入力して、下方向へ数式をコピーします。
- SEQUENCE関数を使って一気に計算することもできます。
=DATE(YEAR(B2)+SEQUENCE(5),MONTH(B2),DAY(B2))

- うるう年の2月29日はどうなる?

EDATE関数を使う
- 何年後の日付を求めるのにはEDATE関数が使えそうです。
ただし、うるう年の2月29日の何年後を求めるとき、うるう年でないときは2月28日になります。
- =EDATE(開始日,月)
開始日から起算した月数を指定します。月に正の数を指定すると、起算日より後の日付を返し、負の数を指定すると、起算日より前の日付を返します。
- B2セルの日付の1年後、2年後、3年後・・・の日付を求めてみます。
- 1年後は =EDATE(B2,12*1)
2年後は =EDATE(B2,12*2) ・・・
といった具合に引数「月」に1年の月数12の倍数を指定します。
12,24,36・・・としてもよいのですが、年で計算していることが分かるように 12*1,12*2,12*3・・・としています。
または、 B3セルに =EDATE($B$2,12*ROW(A1)) と入力して、下方向へ数式をコピーします。
- SEQUENCE関数を使って一気に計算することもできます。
=EDATE(B2,12*SEQUENCE(5))

- うるう年の2月29日はどうなる?
- うるう年だけ 2月29日 となります。
うるう年でない年(2/29がない年)は2月の末日 2/28 となります。

DATE関数を使う
- このケースでは、EDATE関数よりもDATE関数の方が適切と思われます。
=DATE(YEAR(B3)+C3,MONTH(B3),DAY(B3)-1) としています。
EDATE関数ではF4セルのように不適切と思われるケースがあります。

DATE関数を使う
- DATE関数の構文 =DATE(年,月,日) となっています。
何ヶ月後・・・ということは、引数の「月」の部分を加減して求めることができます。
- B2セルの日付の1ヶ月後、2ヶ月後、3ヶ月後・・・の日付を求めてみます。
- 引数の月に月数を加えて求めています。
=DATE(YEAR(B2),MONTH(B2)+1,DAY(B2))
=DATE(YEAR(B2),MONTH(B2)+1,DAY(B2)) ・・・ といった感じです。
- または、B3セルに =DATE(YEAR($B$2),MONTH($B$2)+ROW(A1),DAY($B$2)) と入力して、下方向へ数式をコピーします。
- SEQUENCE関数を使って一気に計算することもできます。
=DATE(YEAR(B2),MONTH(B2)+SEQUENCE(5),DAY(B2))

- 該当する日がないときは?
- 開始日が月の末日の31日のときはどうなるのでしょう?
2024/12/31の2ヶ月後は2025/3/3 となります。4ヵ月後は2025/5/1 となります。
期待する月末の日付が返されません。よって、次のEDATE関数を使うことが考えられます。

EDATE関数を使う
- =EDATE(開始日,月)
開始日から起算した月数を指定します。月に正の数を指定すると、起算日より後の日付を返し、負の数を指定すると、起算日より前の日付を返します。
- B2セルの日付の1ヶ月後、2ヶ月後、3ヶ月後・・・の日付を求めてみます。
- =EDATE($B$2,1) と引数の月に○ヶ月後の月数○を入力します。
- SEQUENCE関数を使って一気に計算することもできます。
=EDATE(B2,SEQUENCE(5))
- 該当する日がないときは?
- 開始日が月の末日の31日のときはどうなるのでしょう?
2024/12/31の2ヶ月後は2025/2/28 となります。4ヵ月後は2025/4/30 となります。

DATE関数を使う
- DATE関数の構文 =DATE(年,月,日) となっています。
何日後・・・ということは、引数の「日」の部分を加減して求めることができます。
- B2セルの日付の10日後、20日後、30日後・・・の日付を求めてみます。
=DATE(YEAR(B2),MONTH(B2),DAY(B2)+10
=DATE(YEAR(B2),MONTH(B2),DAY(B2)+20・・・といった感じになります。
ちょっと長いので、足し算で求める方がよさそうです。
- SEQUENCE関数を使って一気に計算することもできます。
=DATE(YEAR(B2),MONTH(B2),DAY(B2)+SEQUENCE(5,,10,10))
足し算で求める
- 上ではもっともらしくDATE関数を使ってみましたが、何日後といったケースでは日数を加減することで求めることができます。
日付はシリアル値という連続した数値で作成されているので、何日後といった計算は単純に足し算で計算できます。
何日前は引き算で計算できます。
- =B2+10、=B2+20・・・といった感じで足し算で計算できます。
- SEQUENCE関数を使って一気に計算することもできます。
=B2+SEQUENCE(5,,10,10) とします。
スポンサードリンク
Home »
エクセル関数の技 »
何年後、何ヶ月後、何日後の日付を求めたい
PageViewCounter

Since2006/2/27