Excelで日数を計算する関数(DATEDIF、DAYSなど)はいろいろありますが、単純に「あと何日」といった残り日数を計算するだけであれば関数は不要です。今回は特別企画として、日付の足し算、引き算と残り日数の計算方法を解説します。
なお、日付のシリアル値、日付の足し算と引き算をさらに深く理解するには、こちらの記事をご覧ください。
- 【Excel】日付の「シリアル値」を本気で理解するには何を練習するべきか? - わえなび ワード&エクセル問題集
- 【Excel】完全マスター!日付の足し算と引き算を使った日数の計算問題 - わえなび ワード&エクセル問題集
目次
1.シリアル値
問題
「2030/12/31」と入力して表示形式を標準にしなさい。また、日付の表示形式にしなさい。
解説
「2030/12/31」と入力します。このとき、表示形式は自動的に日付になります。
表示形式を標準にします。「47848」になります。
Excelでは、1900年1月1日を1日目として、日付を連番で管理しています。例えば、2030年12月31日は 47848日目にあたり、翌日の1月1日は47849日目にあたります。
この連番のことを「シリアル値(serial value)」といいます(参考:【Excel】日付の「シリアル値」を本気で理解するには何を練習するべきか?)。
そのまま入力すると日付の表示形式になりますが、標準の表示形式にするとシリアル値になります。表示形式を変えることによって、日付の形式とシリアル値を切り替えることができます。
2.日付の足し算
問題
足し算によって2030年12月31日の翌日を求めなさい。また、2030年12月31日の2週間後の日付を求めなさい。
解説
Excelで「=2030/12/31+1」と入力するとスラッシュが割り算になってしまうので、数式の中で日付を使うときは、ダブルクォーテーションで囲んで「="2030/12/31"+1」と入力します。「47849」になります。日付の表示形式にすると2031/1/1になります。
「2030年12月31日(47848日目)」に1を足すと「2031年1月1日(47849日目)」になります。シリアル値は連番なので、足し算をすることによって翌日の日付を求めることができます。ちなみに、DATE関数を使って「=DATE(2030,12,31)+1」としても同じ結果になります。
1を足すと翌日となり、2を足すと翌々日になります。N日後の日付はNを足せばよいです。例えば、2030/12/31と入力します。これに14を足すと2週間後の日付を求めることができます。
発展問題
自分の生年月日の1000日後、2000日後、3000日後、・・・を計算してみなさい。
3.日付の引き算
問題
引き算によって2031年1月1日の前日を求めなさい。また、2031年1月1日の100日前の日付を求めなさい。
解説
「="2031/1/1"-1」または「=DATE(2031,1,1)-1」と入力して、「2031年1月1日(47849日目)」から1を引くと「2030年12月31日(47848日目)」になります。
1を引くと前日となり、2を引くと前々日になります。N日前の日付はNを引けばよいです。例えば、2031/1/1と入力します。100を引くことによって100日前の日付を求めることができます。
発展問題
東京五輪2020年7月24日の100日前、200日前、・・・を計算してみなさい。
4.日付のかけ算
問題
かけ算によって2031年1月1日のシリアル値を求めなさい。
解説
「="2031/1/1"*1」のように、日付に1をかけるとシリアル値(標準)になります。
ただし、セルを参照した場合(A1*1)はシリアル値にはなりません。
5.日数の計算
問題
「2031年1月1日」から「2030年12月31日」を引きなさい。
解説
「2031年1月1日(47849日目)」から「2030年12月31日(47848日目)」を引くと「1」になります。日付同士の引き算をするとその間の日数を求めることができます。
6.TODAY関数を使った計算
問題
TODAYの100日後を計算しなさい。また、「2031年1月1日」からTODAYを引きなさい。
解説
TODAY関数は今日の日付を表します。TODAY関数を使った数式の結果は原則として日付の表示形式になります。「=TODAY()+100」で100日後を計算できます。
「="2031/1/1"-TODAY()」で2031年1月1日までの日数が計算できますが、日付の表示形式になりますので、標準にします。
ちなみに、「TODAY()*1」とするとシリアル値になりますから、「="2031/1/1"-TODAY()*1」とすれば、表示形式を変えることなく日数が計算できます。
発展問題
自分が生まれてから何日経過しているか「=TODAY()-"生年月日"」を計算してみなさい。
7.残り日数の計算
(1)イベント当日までの残り日数
問題
あるイベントが「2031年1月1日」から始まる場合、TODAY関数を用いてイベント当日までの残り日数を計算しなさい。
解説
あるイベントまで残り5日といえば、5日後にイベントが始まるという意味です。今日の朝の5日後は、イベント当日の朝です。今日の夜の5日後は、イベント当日の夜です。朝であっても夜であっても、5日後がイベント当日であることに変わりはありません。
「TODAY+5=イベント開始日」です。したがって、残り日数は「イベント開始日-TODAY」とすればよいです。イベントの日が「2031/1/1」の場合、イベント開始までの残り日数は「="2031/1/1"-TODAY()」です。
別解
「2031/1/1」のシリアル値が47849なので、「=47849-TODAY()*1」としてもよいです。
(2)イベント終了までの残り日数
問題
あるイベントが「2030年12月31日」に終わる場合、TODAY関数を用いてイベント終了までの残り日数を計算しなさい。
解説
例えば、「夏休みが残り5日」という場合、朝起きたときは残り5日なので「5日間で何をするか」を考えますが、夜寝る前は「あー残り4日しかない」と考えるはずです。
このように、イベント期間中の場合、最終日までの残り日数は、朝か夜かによって変わります。
Excelでは、日付は午前0時を基準として考えるので、期間の計算は「終了日-開始日+1」とします。プラス1が必要です。
したがって、残り日数は「イベント終了日-TODAY+1」となります。
イベント最終日が「2030/12/31」の場合、残り日数は「="2030/12/31"-TODAY()+1」です。
別解
イベント最終日+1は、イベント終了の翌日のことなので「="2031/1/1"-TODAY()」としても同じです。
解説は以上です。