【日付計算】Excelで「数年後の日付」を表示する方法は? DATE関数をマスターしよう!

2022/08/23

ITスキル


Excelを使って日付計算をする中で「数年後の日付を求めたい」という場合があると思います。ここでは「3年後の日付」を例にとって、DATE関数を使った日付の自動計算を解説します。さらに「3年後の前日」「3年6ヶ月後」といった応用についてもご紹介。この機会にDATE関数、EDATE関数などの日付系の関数を使いこなせるようになりましょう。

Excel関数の基本まとめ

3年後の日付を表示する

Excelで3年後の日付を表示するにはDATE関数を用います。

例えば、A2セルにある日付の3年後の日付を表示したい場合には、

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

と入力します。
※「YEAR(A2に表示された年から3年後)、MONTH(A2に表示された月と同じ)、DAY(A2に表示された日と同じ)」と指示していることになります。
※実際の数式入力は全て半角で行います。

3年後の日付

「Enter(エンター)」キーを押せば、3年後の日付が自動算出されて表示されます。

3年後の日付2

3年後の前日を表示するには

ここからは、少しずつ複雑な数式にもチャレンジしていきます。まずは「3年後の前日」を表示する方法です。

たとえばソフトのサポート管理をしていて、3年契約の場合には3年後の前日にサポートが切れるといったケースがあります。このサポート終了日を自動計算で算出します。

3年後の前日ということは、先ほどのちょうど3年後よりも1日前ということになるため、

=DATE (YEAR(A2)+3,MONTH(A2),DAY(A2)ー1)

このように入力します。実際にやってみましょう。
(実際の入力は全て半角です。)

3年後の前日1

YEARのところに“+3”、DAYのところに“ー1”と入っていますね。これでEnterを押します。

3年後の前日2

3年後の前日が表示されました!

このほか、サポート期間が3年間だけでなく1年や2年なども混在している場合、B列にサポート期間を入力した上で、B列を計算式に加えればOKです。

例えば下図で、先ほどYEARのところに入っていた3年後の“3”を消して、代わりにB2セルを指定します。B2セルをクリックすると早いです。

n年後の前日1

Enterでうまく計算できていることを確認したら、そのまま下にコピーします。

n年後の前日

これでサポート期間が2年や1年の計算もできるようになりました!9月1日の場合は、前日となると月が変わって8月31日になりますが、きちんと計算できています。

うるう年でもちゃんと表示される?

日付を正しく計算する上で忘れてはいけないのが、うるう年。2月以外の計算ならあまり意識することがないかもしれませんが、いつでも不具合のないようにしておきたいですよね。

先ほどと同じく、サポート期間1年〜3年後の前日を自動計算する表を使いましょう。最近では2020年と2024年がうるう年にあたりますので、日付が正しく表示されるか検証してみます。

うるう年

上のとおり、うるう年の2月29日にソフトを購入した場合、サポート終了日となる前日というのは2月28日となります。2月29日の「ちょうど3年後」は29日がなく3月1日となるためです。また3月1日にソフトを購入した場合は、終了日がうるう年なら2月29日、それ以外なら2月28日と正しく表示できています。

このように、Excelでは長年のカレンダーが既にインプットされているため、うるう年もちゃんと加味して正しく日付表示してくれることが分かりました。

【応用編】3年6ヶ月後は表示できる?

もう少しステップアップして応用編です。「3年6ヶ月後」はうまく表示できるのでしょうか。先ほどからのDATE関数を使う場合、YEARに“+3”、MONTHに“+6”すればいいことになります。

=DATE (YEAR(A2)+3,MONTH(A2)+6,DAY(A2))

3年6月後1

これで一見問題ないように見えます。ですが、次のように例えば3月31日で計算するとどうなるでしょう。

3年6月後3

3年6ヶ月後は10月1日と表示されました。ですが3月31日を「3月末」という意味で入力していた場合、6ヶ月後が10月1日ではもやもやしませんか。9月末の9月30日としたい時もありますよね。ですがDATE関数だと「3月31日の6ヶ月後は9月31日、でも9月に31日は無いから10月1日」となり困ってしまうことに。

そんな時に便利なのが、EDATE関数。EDATEとは「何ヶ月後」といった具合に月数に特化して日付を計算してくれる関数です。使い方はEDATE(開始日,月)と入力します。

今回はA2セルにある日付を開始日とし、3年6ヶ月後なら36ヶ月+6ヶ月=42ヶ月なので、

=EDATE (A2,42)

と入力します。Enterを押すと今度は9月30日と表示されました。

3年6月後4

このように、EDATE関数は月数に着目して日付を計算するため、もし9月31日がない場合には10月に変わってしまうのではなく、9月月末となる30日を表示してくれます。各月で日数が異なるという月の特徴に配慮した、便利な関数ですね!

日付のセルの個数をカウントする

もう1点、日付のリストを集計する際に便利な関数をご紹介します。無作為に配置されたデータの中から、特定の日付セルだけをピックアップして個数をカウントする場合には、COUNTIF関数を用います。

例えば、これら多くの日付の中から「2015/4/5」を探し出したい場合、

検索の範囲はA列の1行目から14行目なので「A1:A14」になります。検索したい日付を入力すると数式はこうなります。

=COUNTIF(A1:A14,"2015/4/5")

※=COUNTIF(検索する列の開始位置:検索する列の終了位置,"検索する日付")

エンターを押すと、該当の日付が表示されているセルの個数が判明します。

COUNTIF関数の数式は2通りあり、下記のどちらを用いても計算ができます。

(1)=COUNTIF(A2:A20,"2015/2/6")
(2)=COUNTIF(A2:A20,DATE(2015,2,6))

まとめ

今回は「3年後の日付」といった日付の自動計算に便利なDATE関数について解説しました。そのほかEDATE、COUNTIFなどもご紹介しましたので、必要に応じて使ってみて下さい。うるう年や月末の処理など、心配なところは先にサンプルデータでテストしておくと安心。正しい数式で、大量データも正確に運用できるようになるといいですね。

文:マイナビ学生の窓口編集部

関連記事

新着記事

もっと見る

HOT TOPIC話題のコンテンツ[PR]

注目キーワード

 ビジネス用語・カタカナ語80選

 キャリアロードマップの一歩目

  • ピックアップ [PR]