日付の計算や時刻の比較が簡単にできる
ExcelのTODAY(トゥデイ)関数は、現在の日付を求める機能を持ちます。また、NOW(ナウ)関数は現在の日付・時刻を求める機能を持ちます。
いずれの関数も以下のように、資料の印刷時に、その時点での日付や時刻をタイムスタンプとして記録するのが代表的な利用例です。
TODAY関数の利用例
「発行日」の隣のセルに、TODAY関数が入力されています。資料の印刷時に、その時点での日付を記録する用途で役立ちます。
しかし、TODAY関数とNOW関数には、ほかにも便利に使えるシーンがあることをご存じでしょうか? 本記事では、Excelの資料内で日付・時刻のデータを効率的に扱いたい人のために、TODAY関数とNOW関数の実践的な使い方を紹介します。
TODAY関数とNOW関数の構文
まずはTODAY関数とNOW関数の構文を確認しましょう。どちらも引数は不要ですが、「()」は省略できないので注意してください。
=TODAY
()
=NOW
()
TODAY関数とNOW関数の結果は、Excelのファイルを開いたり、何らかの機能を実行したりすると更新されます。つまり、TODAY関数で資料の「作成日」を記録しようとしても、次に開いたときには自動的に更新されるため、意味を成しません。
TODAY関数を日付の計算に利用する
TODAY関数は、入力済みの日付と今日の日付を比較して、期間を計算したいときにも使えます。2つの日付の期間を求めるにはDATEDIF(デートディフ)関数を利用します。構文は以下の通りです。関数の一覧には表示されず、直接入力することで動作します。
=DATEDIF
(開始日, 終了日, 単位)
- [開始日] ...... 期間の開始日
- [終了日] ...... 期間の終了日
- [単位] ...... 日数の計算方法を文字列で指定(以下の表を参照)
引数[単位]を指定する文字列と計算結果
文字列 | 計算結果 |
---|---|
"Y" | 満年数を求める |
"M" | 満月数を求める |
"D" | 満日数を求める |
"YM" | 1年に満たない月数を求める |
"YD" | 1年に満たない日数を求める |
"MD" | 1カ月に満たない日数を求める |
以下の例では、入会日から今日までの年数をTODAY関数とDATEDIF関数を組み合わせて求めています。
セルE2の数式は「=DATEDIF(D2,TODAY(),"Y")」です。セルD2の日付からの今日までの年数を求めています。
なお、DATEDIF関数の引数[単位]によって結果を切り替えられるので、例えば「締め切り日まであと○日」などと表示することも可能です。
NOW関数を使って時刻を比較する
今度はNOW関数を利用して、時刻を比較してみましょう。以下のようにセルに「=NOW()」と入力すると、現在の日付と時刻が表示されます。
セルに「=NOW()」と入力すると、現在の日付と時刻が表示されます。
以下の例では、入力済みの日付と時刻を連結し、さらにNOW関数で求めた現在の日時と比較することで、「申込可」と「受付終了」の文字列を表示しています。
セルD2には「=IF((B2+C2)<$F$2,"受付終了","申込可")」と入力してあります。セルB2の日付とセルC2の時刻を連結して、セルF2に入力されたNOW関数の結果と比較し、締切時刻より超過していれば「受付終了」、締切時刻の前なら「申込可」と表示されます。
NOW関数の時刻のみを表示する
TODAY関数とNOW関数によって求められる日付・時刻の正体は「シリアル値」であり、セルの表示形式を変更することで見た目を変化させることができます。例えば、現在の時刻のみを表示したいときは、NOW関数で現在の日付と時刻を求めてから、セルの表示形式を時刻のみに切り替えるのが簡単です。
セルA1にはNOW関数が入力されています。[Ctrl]+[1]キーを押して[セルの書式設定]ダイアログボックスを表示します。[表示形式]タブで[時刻]から[13:30]を選択して[OK]をクリックします。
NOW関数の結果が、時刻のみに切り替わりました。
もし、TODAY関数やNOW関数の結果がシリアル値のまま表示されたときは、セルの表示形式を確認してみましょう。