[書式] TODAY()
[機能] 今日の日付のシリアル値を返します。
(なし) | この関数には、引数はありません。 |
●●● 「今日」を使った動的な日付の計算 ●●●
TODAY関数は、ワークシート上に、常に 「今日」 の日付を表示しておきたい場合などに
便利です。 また、今日の日付を動的に利用した計算などにも用います。
たとえば、「今年の残り日数」 をいつもワークシート上に表示しておきたい場合を考えて
みましょう。
本日 「2009/1/7」 から 「2009/12/31日」 までの日数を計算したいなら、適当なセルに
="2009/12/31"-"2009/1/7"
と入力すれば求めることができます。 でも、日付は毎日変わっていきます。
そこで、"2008/1/7" の代わりに TODAY() を利用して、
="2009/12/31"-TODAY()
とします。 こうすれば、明日になっても明後日になっても、正しい日数が計算されます。
次のシートでは、「今年の残りの日数を」 もう少しきちんと計算しています。 上のやり方
では、来年になったら計算式を変えなければなりません。 年が変わっても正しい日数を
求めたいなら、もうひと工夫した、こんな計算式が必要です。
セルB2に入力されている計算式は、
=DATE(YEAR(TODAY()),12,31)-TODAY()
というものです。 少しだけ長いので、分解して意味を考えていきま
しょう。
まず、YEAE関数は、シリアル値に対応する「年」を求める関数です。 したがって
YEAR(TODAY())
の部分では、今年の西暦を求めています。
さらに
DATE(YEAR(TODAY()),12,31)
とすることで、今年の12月31日のシリアル値が計算できます。 このような計算式にして
おけば、来年になったら、来年の12月31日のシリアル値が返されます。
その年の12月31日のシリアル値から本日の日付のシリアル値を引いた値、すなわち
=DATE(YEAR(TODAY()),12,31)-TODAY()
という計算式で、残りの日数が計算できるわけです。
なお、TODAY関数の計算結果が更新されるのは、シートを開いた時と再計算が実行され
た時です。 Excelでは通常、シートに入力や修正が加えられると再計算が実行されます。
ですから、シートをただ開きっぱなしにして翌日まで放置するようなケースでなければ、常
に正しい結果が表示されます。
TODAY関数はシートを開いた時にも再計算がおこなわれるため、ちょっとした副作用があ
ります。 (Excelの関数の多くは、シートを開いただけでは再計算はおこなわれません)
それは、シートに何も修正を加えずに閉じようとした時にも、
「保存しますか?」
と聞いてくることです。 知らないと、ちょっとびっくりするかもしれませんが、これはTODAY
関数の出力値が書き替えられたことによるものです。 見えないところで自動的に修正が
行われたわけです。 特に修正していないなら、そのまま保存せずに閉じてかまいません。
余談ですが、請求書のようなシートの日付欄にTODAY関数を使用している例題を見かける
ことがあります。 しかしながら、こうした使い方は、実際には、あまり好ましくありません。
別の日にそのシートを開いたら、日付が変わってしまうからです。 あくまでも説明のための
例題と考えるのがよいと思います。
もしその日の日付を、セルに簡単に入力したいだけなら、ショートカットキーをお薦めします。
CTRL + ; (CTRLキーを押しながら ; 「セミコロン」を押す)
とすれば本日の日付(のシリアル値)を素早く入力できます。
このショートカットキーでセルに入力されるのはシリアル値ですから、あらかじめセルに表示
形式を設定しておけば、好きな形式で簡単に日付の入力ができます。