Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
何年後、何ヶ月後、何日後の日付を求めたい:Excel関数の技
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