Excel(エクセル)で日付を使った計算をするのが苦手な人が多いでしょう。
例えば、「24年12月31日の2か月後はいつ?」を計算したい場合、2か月後は25年2月ですが、2月は28日までしかないので、どのように数式を使って計算したらよいか悩むのではないでしょうか。
また、「24/2/15」の2か月後の月末日を自動で計算したくても、慣れていないと難しいものです。
今回は、指定した日から、「何日後、何週間後、何ヶ月後、何年後」「何日前、何週間前、何ヶ月前、何年前」を計算する方法を解説します。
伝票の発行日や支払期日、満期日などの日付を計算する時など、さまざまな場面で活用できるので参考にしてください。
エクセルの日付を管理しているシリアル値とは?
エクセルは「シリアル値」という1~6桁までの数字で日付を管理しています。
セルの表示は「2024/11/29」でも、実際は「45625」というシリアル値で日付を処理しています。
シリアル値とは、「1900年1月1日」を「1」として、何日経過したかを示す数値です。
そのため、毎日シリアル値が+1加算され、1年で+365のシリアル値が増え、現在2024年11月29日ではシリアル値は「45625」と6桁の数字になっているという仕組みです。
実際に、シリアル値を確認することもできます。
確認したい日付セルを選択してから、右クリックメニューの「セルの書式設定」ボタンを押します。
「セルの書式設定」画面で「表示形式」を「日付」から「標準」に変更します。そうすると、「2024/11/29」がシリアル値の「45625」に変更されます。
このように、「セルの書式設定」画面で「標準」や「日付」を選択することで、セルの表示を「日付」や「シリアル値」に簡単に変更できるので、覚えておきましょう。
指定日から「何月後(前)」の日付を計算する方法
それでは、まずは指定した日から「~月後」「~月前」を計算する方法を解説します。
伝票の発行日から支払期日などを計算する時などに役立ちます。
利用するのは、EDATE関数(イーデート関数)という関数です。
EDATE関数の書式と引数
EDATE関数とは、開始日と月数の2つを指定して、その月数だけ前または後の日付を表示させる関数です。
この関数は、月の日数が異なる場合でも、指定した月末日に自動で調整してくれるのが特徴です。
EDATE関数の書式と引数は、以下のとおりです。
=EDATE(開始日, 月)
第1引数「開始日」:計算の起点となる日付を入力します。日付が入力されたセルを指定することもできます。(例:「2024/11/29」、B3)
第2引数「月」:月数を指定します。正の数を入力すると起算日より後の日付、負の数を入力すると起算日より前の日付を返します。数値セルを指定することも可能です。(例:-2、3、A3)
たとえば、「2024年11月30日」の 3ヶ月後の日付を計算するために、下の表のC2セルに以下のEDATE関数を挿入してみます。
=EDATE(B2,3)
そうすると、「2024年11月30日」の 3ヶ月後は「2025年2月30日」とはならず、月末日が調整されて、「2025年2月28日」と表示されます。
セルの表示形式が「標準」の場合は、EDATE関数の結果がシリアル値で表示されます。その場合は、上の見出しで紹介したように、セルの表示形式を「日付」に変更してください。
EDATE関数で「何月後」「何月前」の日付を計算する方法
EDATE関数で基準日の「何か月後」の日付を計算する場合は、引数に「基準日」と「月数」を指定すれば、簡単に計算することができます。
=EDATE(B3,C3)
EDATE関数で基準日の「何か月前」の日付計算する場合は、引数の「月数」にマイナスの数値を指定します。
EDATE関数で「何月後」の月末日を計算する方法
上記のとおり、EDATE関数は月ごとに異なる日数を自動で調整してくれます。
しかし、仮に「2024/2/28」の1か月後をEDATE関数で計算すると、「2024/3/28」となり、月末日には調整してくれません。
請求書の支払期日のように「~か月後の月末日」を自動で計算したい時は、EDATE関数とEOMONTH関数(イーオーマンス関数)を組み合わせて使用します。
EOMONTH関数は、指定した基準日から、指定された月数だけ前または後の月の最終月末日を表示する関数です。
=EOMONTH(開始日,月)
月末日を算出する方法は簡単です。
EDATE関数で~か月後の日付を計算し、その関数を囲うようにEOMONTH関数を使用します。第1引数「開始日」はEDATE関数を挿入し、第2引数「月数」は「0」と指定してください。
=EOMONTH(EDATE(B3,1),0)
指定日から「何週間後(前)」の日付を計算する方法
指定した日から「~週間後」「~週間前」の日付を求めたい場合は、四則演算(足し算、引き算、掛け算)だけで計算できます。
1週間は7日なので、「~週間後」を計算する場合は、基準日に「何週先化の数値×7」を足し算することで算出できます。
=B3+C3*7
同様に、指定日から「~週間前」の日付を計算する場合は、計算式をマイナスに変えるだけです。
=B3-C3*7
指定日から「何年後(前)」の日付を計算する方法
指定日から「何年後」「何年前」の日付を計算する方法を紹介します。
年によっては365日ではなく、366日の年もあるため、正確に計算する必要がある場合に活用できます。
使用するのは、DATE関数、YEAR関数、MONTH関数、DAY関数という日付に関係する4つの関数です。
DATE関数、YEAR関数、MONTH関数、DAY関数とは?
DATE関数、YEAR関数、MONTH関数、DAY関数の4つの関数を簡単に紹介します。
どの関数も書式はシンプルで簡単に使える関数なので安心してください。
DATE関数は、「年」「月」「日」をそれぞれ引数に指定して日付データを作成する関数です。
=DATE(年,月,日)
第1~3引数「年」「月」「日」
年月日が入力されたセルを指定するか、直接関数の中に数字を入力します。(例:=DATE(B3,C3,D3)、=DATE(2024,7,15))
DATE関数の使い方を詳しく知りたい方は、以下の記事を参考にしてください。
YEAR関数、MONTH関数、DAY関数は、指定した日付セルからそれぞれ「年」「月」「日」を取り出すことが出来る関数です。
DATE関数で「何年後」「何年前」の日付を計算
上記で紹介したDATE関数、YEAR関数、MONTH関数、DAY関数を使って、「何年後」「何年前」の日付を計算します。
YEAR関数、MONTH関数、DAY関数を使って取り出した「年」「月」「日」を使って、DATE関数で3年後の日付を組み立てします。
使用する数式は、以下のとおりです。
DATE関数の第1引数の中でC列の年数を加算することで、~年後の日付を表示させることができます。
=DATE(YEAR(B3)+C3,MONTH(B3),DAY(B3))
同様に、起算日から「~年前」の日付を表示したい時は、DATE関数の第1引数で年数分の数字を引き算してください。
=DATE(YEAR(B3)-C3,MONTH(B3),DAY(B3))
指定日から「何日後(前)」の日付を計算する方法
上記で紹介したように、エクセルは日付をシリアル値という数値で管理しています。
そのため、「2024/11/30」の日付セルに「+1」を足し算すれば、自動でシリアル値が+1足されて、「2024/12/1」と表示されます。
同様に、「何日前」の日付を求めたい時は、その日数分を引き算してください。
日付から日付までの期間を算出する方法
今回の記事では、指定日から、「何ヶ月後、何ヶ月前」の日付を求める方法を紹介しました。
生年月日から現在の年齢を算出するなど、「日付」から「日付」の期間を算出する場合は、DATEDIF関数(デイトディフ)を使用します。
以下の記事で、日付から期間を算出する方法を紹介しているので、合わせて参考にしてください。