Excelを使って日付計算をする中で「数年後の日付を求めたい」という場合があると思います。ここでは「3年後の日付」を例にとって、DATE関数を使った日付の自動計算を解説します。さらに「3年後の前日」「3年6ヶ月後」といった応用についてもご紹介。この機会にDATE関数、EDATE関数などの日付系の関数を使いこなせるようになりましょう。
Excelで3年後の日付を表示するにはDATE関数を用います。
例えば、A2セルにある日付の3年後の日付を表示したい場合には、
=DATE (YEAR(A2)+3,MONTH(A2),DAY(A2))
と入力します。
※「YEAR(A2に表示された年から3年後)、MONTH(A2に表示された月と同じ)、DAY(A2に表示された日と同じ)」と指示していることになります。
※実際の数式入力は全て半角で行います。
「Enter(エンター)」キーを押せば、3年後の日付が自動算出されて表示されます。
ここからは、少しずつ複雑な数式にもチャレンジしていきます。まずは「3年後の前日」を表示する方法です。
たとえばソフトのサポート管理をしていて、3年契約の場合には3年後の前日にサポートが切れるといったケースがあります。このサポート終了日を自動計算で算出します。
3年後の前日ということは、先ほどのちょうど3年後よりも1日前ということになるため、
=DATE (YEAR(A2)+3,MONTH(A2),DAY(A2)ー1)
このように入力します。実際にやってみましょう。
(実際の入力は全て半角です。)
YEARのところに“+3”、DAYのところに“ー1”と入っていますね。これでEnterを押します。
3年後の前日が表示されました!
このほか、サポート期間が3年間だけでなく1年や2年なども混在している場合、B列にサポート期間を入力した上で、B列を計算式に加えればOKです。
例えば下図で、先ほどYEARのところに入っていた3年後の“3”を消して、代わりにB2セルを指定します。B2セルをクリックすると早いです。
Enterでうまく計算できていることを確認したら、そのまま下にコピーします。
これでサポート期間が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ヶ月後」はうまく表示できるのでしょうか。先ほどからのDATE関数を使う場合、YEARに“+3”、MONTHに“+6”すればいいことになります。
=DATE (YEAR(A2)+3,MONTH(A2)+6,DAY(A2))
これで一見問題ないように見えます。ですが、次のように例えば3月31日で計算するとどうなるでしょう。
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日と表示されました。
このように、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などもご紹介しましたので、必要に応じて使ってみて下さい。うるう年や月末の処理など、心配なところは先にサンプルデータでテストしておくと安心。正しい数式で、大量データも正確に運用できるようになるといいですね。
文:マイナビ学生の窓口編集部
2023/06/01
2023/05/09
2023/04/26
【企業での社会人経験を経てお笑いの世界へ】親しみやすい経歴を持つお笑い芸人・コットンのお二人が、新社会人のみなさんに伝えたい事とは?
2023/04/26
海に浮かぶ水上レストランや泥温泉も!世界一幸せな国フィジーで週末コスパ&タイパ旅しない?
[PR]2023/04/17