わえなび ワード&エクセル問題集

当サイトはWordとExcelの実力を鍛える最高水準の特訓問題集です。リンクを張るのは自由です。みんなで勉強しましょう!

【Excel関数】今日の日付を求めるTODAY関数と、CTRL+セミコロンの違い

文書を作成するときには発信の日付を入れることがあります。特にビジネスの場合は、ルールの改廃や適用の有無、お金の計算にも関わるので重要です。Excelで今日の日付を毎日入力するのが面倒だからという理由でショートカットキー(Ctrl+セミコロン;)またはTODAY関数を用いることがあります。

「ショートカットキーを使えば簡単に日付が入力できて便利でしょう~」「TODAY関数を使えば勝手に今日の日付になって便利でしょう~」などと便利なことが強調されることが多いですが、必ずしも便利とは限らないということをしっかりと理解しなければなりません。

  • 明日や一昨日の日付はどうするのか?
  • 今日の曜日はどうするのか?今年・今月はどうやって表示するのか?
  • 請求書の日付がころころ変わってもいいのか?

そこで、今回は、本日の日付を求めるTODAY関数を用いるときの注意点と、TODAY関数を用いた足し算・引き算について出題します。

 

 

目次

1.TODAY関数と本日の曜日

問題

現在の日付を入力しなさい。また、隣のセルに曜日を表示しなさい。

解説

現在入力している時点での日付を入力するには、月と日だけ入力すればよいです。

f:id:waenavi:20190901053804j:plain

 

入力している時点での年が自動的に保管されます。

f:id:waenavi:20190901053707j:plain

 

Ctrlキーを押しながら;(セミコロン)を押すと今日の日付が入ります。直接日付を入力するのとCtrl+;で入力するのはまったく同じです。

f:id:waenavi:20190901053918j:plain

 

TODAY関数は現在の日付を求める関数ですが、これもシリアル値です。関数の挿入の画面にも「現在の日付を表すシリアル値を返します」とあります。1900年1月1日からの経過日数を求めて、画面上に「yyyy/m/d」で表示します。

f:id:waenavi:20190901054022j:plain

 

TODAY関数には引数がありません。この画面をそのままOKすれば関数が入ります。

f:id:waenavi:20190901054114j:plain

 

半角で「=today()」と直接入力してもかまいません。

f:id:waenavi:20190901054204j:plain

 

直接入力した場合も、TODAY関数を用いた場合も、標準の表示形式にするとシリアル値になります。

f:id:waenavi:20190901054408j:plain

 

曜日を表示するにはシリアル値が必要です。イコールで参照します。

f:id:waenavi:20190901054557j:plain

 

表示形式を「aaa」または「aaaa」にします。

f:id:waenavi:20190901054643j:plain

 

TODAY関数は数式なので自動再計算されます。したがって、翌日になれば自動再計算によって自動的に翌日の表示になります。

f:id:waenavi:20190901055409j:plain

 

2.現在の年月

問題

現在の年月を表示しなさい。

解説

TODAY関数を入力します。「=today()」と入力したほうが早いです。

f:id:waenavi:20190901054204j:plain

 

表示形式を年月にします。日にちが非表示になりますが、セルに保存されている値はシリアル値(整数値)です。

f:id:waenavi:20190901055534j:plain

 

TODAY関数なので、月をまたがったら自動的に変わります。

f:id:waenavi:20190901055723j:plain

 

ユーザー定義の表示形式で、「yyyy」「m」「ggge」などとすれば年や月をそれぞれ表示することも可能です。年・月・日を非表示にしても、セルに保存されている値はシリアル値(整数値)です。関数なので年や月が変われば表示も自動的に変わります。

f:id:waenavi:20190901055836j:plain

 

3.ショートカットキーとTODAY関数の違い

問題

直接入力した場合とTODAY関数を用いた場合の違いを述べなさい。

解説

日付を直接入力してオートフィルをすると1日ずつ増えます。

f:id:waenavi:20190901060300j:plain

 

これに対して、数式はコピーになるだけなのでオートフィルをしても翌日にはなりません。

f:id:waenavi:20190901060350j:plain

 

ショートカットキー(Ctrl+;)で日付を直接入力すると入力した時点の日付が入力され、この日付が変わることはありません。例えば、5月31日に入力すると5月31日の日付が表示されますが、このExcelファイルを使っている最中に日付が変わって6月1日になったとしても5月31日のままです。そして、このファイルを保存して後日開いても5月31日のままです。

f:id:waenavi:20190901060555j:plain

 

これに対して、TODAY()は関数なので、入力している時点ではなく再計算された時点の日付が表示されます。Excelを使用すると常に再計算が行われます。例えば、5月31日にTODAY関数を用いると5月31日の日付が表示されますが、このExcelファイルを使っている最中に日付が変わって6月1日になった場合、自動再計算によって6月1日になります。

f:id:waenavi:20190901060828j:plain

 

このファイルを保存して後日開くと開いた日付に変わります。このように固定の日付を用いるか、TODAYを使うべきかは状況によって判断しなければなりません。

f:id:waenavi:20190901060932j:plain

 

4.TODAY関数が良いとは限らない

問題

次の図でTODAY関数を使うべきか検討しなさい。

f:id:waenavi:20190901061038j:plain

 

解説

今日の日付だからと言ってなんでもかんでもTODAY関数を使えばいいというものではありません。TODAY関数は常に再計算されることに注意しなければなりません。

f:id:waenavi:20190901060932j:plain

 

例えば、「~月~日現在」で集計した場合、集計した日が変わってはいけません。集計した日が保存されなければならない場合、TODAY関数を用いてはいけません。原則として日付は直接入力するべきです。

f:id:waenavi:20190901061149j:plain

 

また、請求書や業務日報のように毎日使用するExcelファイルで、TODAY関数を用いることが考えられますが、再計算によって日付と内容が合わなくなることに注意しなければなりません。

f:id:waenavi:20190901061842j:plain

 

一度発行した請求書の日付を絶対に変えてはいけません。この場合は、別の場所に値で貼り付けをしてTODAY関数を消して、日付を保存しなければなりません。

f:id:waenavi:20190901061948j:plain

 

「大会まであと何日!」「本日は大会何日目!」など、表示している時点を日付を用いて計算し、日付を保存する必要が無いことが明らかな場合に限り、TODAY関数を用いるべきです(後述)。

f:id:waenavi:20190901062344j:plain

 

5.TODAYを使った足し算引き算

(1)昨日の日付と明日の日付

問題

TODAY関数を用いて、昨日の日付、明日の日付を求めなさい。また、100日前、100日後を計算する数式を述べなさい。

解説

TODAY関数は本日の日付をシリアル値として返す関数です。したがって、足したり引いたりすることも可能です。

 

「=TODAY()-1」で昨日の日付、「=TODAY()+1」で明日の日付になります。

  • 一昨日・・・=TODAY()-2
  • 昨日・・・=TODAY()-1
  • 明日・・・=TODAY()+1
  • 明後日・・・=TODAY()+2

f:id:waenavi:20190901062910j:plain

 

100日前は100を引きます。100日後の場合は、100を足します。

  • 100日前・・・=TODAY()-100
  • 100日後・・・=TODAY()+100

f:id:waenavi:20190901063107j:plain

 

これらは日付が保存されないTODAY関数を用いているので、翌日にこのExcelファイルを開くと、日付が更新されます。

f:id:waenavi:20190901063301j:plain

 

(2)今日で何日目か

問題

セルB1に生年月日を入力した。TODAY関数を用いて、今日で生まれて何日目かを計算しなさい。

f:id:waenavi:20190901063510j:plain

 

解説

生年月日を入力した場合、今日の日付TODAY()から生年月日を引けばその間の日数を計算することができます。

  • =today()-B1

f:id:waenavi:20190901063550j:plain

 

このとき日付の表示形式になった場合は、標準の表示形式にします。

f:id:waenavi:20190901063651j:plain

 

(3)残り日数

問題

イベントの開始日が2022/1/15とする場合、TODAY関数を用いて残り日数を求めなさい。

解説

イベント当日の日付が分かっている場合、イベントまでの準備期間として残り日数を求める計算式は、本番当日-今日です。

f:id:waenavi:20190901064023j:plain

 

ダブルクォーテーションで囲んだ日付は、足し算や引き算の計算式の中ではシリアル値として計算されます。「あと何日か」は常に更新されるべき値なので、TODAY関数を用いて計算するべきです。

  • ="2022/1/15"-TODAY()

f:id:waenavi:20190901063810j:plain

 

(4)今年あと何日?

問題

TODAY関数を用いて、今年の残り日数を求めなさい。

解説

イベントの最終日が分かっている場合、最終日までの残り日数として「あと何日か」を求める計算式は、最終日-今日+1です。

f:id:waenavi:20190901064200j:plain

 

年の最終日は大晦日なので、「=大晦日-TODAY()+1」となります。

f:id:waenavi:20190901064258j:plain

 

別解

イベントの初日を翌年の元日と考えると、今日から大晦日までの期間がイベントの準備期間にあたります。この場合、イベント初日(元日)から今日の日付を引きます。

f:id:waenavi:20190901064539j:plain

 

=翌年の元日-TODAY()」となります。

f:id:waenavi:20190901064700j:plain

 

6.TODAYを使った繰り返しの計算

問題

本日を基準として、10日前から10日後までの日付を表示しなさい。

f:id:waenavi:20190901065103j:plain

 

解説

10日前の日付はTODAYから10を引きます。

f:id:waenavi:20190901065141j:plain

 

これをオートフィルしても同じ日付になります。それは数式をコピーしているからです。

f:id:waenavi:20190901065245j:plain

 

1を足します。9日前の日付になります。

f:id:waenavi:20190901065339j:plain

 

これをオートフィルすると1ずつ足されるので連続した日付になります。

f:id:waenavi:20190901065409j:plain

 

別解その1

本日の日付をTODAYで求めます。

f:id:waenavi:20190901065512j:plain

 

1を足して、オートフィルをします。

f:id:waenavi:20190901065600j:plain

 

1を引いて、上向きにオートフィルをします。

f:id:waenavi:20190901065645j:plain

 

別解その2

TODAY関数に加算する日数をあらかじめ入力しておきます。

f:id:waenavi:20190901065747j:plain

 

これをTODAYに加算することによって連続した日付を求めることができます。

f:id:waenavi:20190901065819j:plain

f:id:waenavi:20190901065849j:plain

 

表示形式を「0"日後";0"日前";"本日"」とします。

f:id:waenavi:20190901065939j:plain

 

7.今日の判定

問題

セルA1に年月、セルA4以降に日にちを入力した。今日の日付であればTRUE、そうでなければFALSEと表示しなさい。

f:id:waenavi:20190901070533j:plain

 

解説

セルA1に1日の日付を入力します。

f:id:waenavi:20190901070745j:plain

 

イコールで参照します。

f:id:waenavi:20190901072804j:plain

 

1を足してオートフィルをします。

f:id:waenavi:20190901072837j:plain

 

年月の表示形式にします。

f:id:waenavi:20190901072919j:plain

 

表示形式を「d」にします。

f:id:waenavi:20190901073015j:plain

 

日にちはシリアル値なのでTODAYと直接比較することによって、本日であればTRUE、そうでなければFALSEとなります。

f:id:waenavi:20190901073054j:plain

 

これを利用してIF関数や条件付き書式の条件式として使えます。

f:id:waenavi:20190901073125j:plain

 


解説は以上です。


 

 


Copyright(C)2018-2019 waenavi, All rights reserved. [www.waenavi.com 定礎 平成三十年八月]