- 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