TODAY関数 - 今日の日付を求める [Excel関数リファレンス]

 

[書式] TODAY()

 

[機能] 今日の日付のシリアル値を返します。

 

(なし)  この関数には、引数はありません。
[引数]

 


 

●●● 「今日」を使った動的な日付の計算 ●●●

 

TODAY関数は、ワークシート上に、常に 「今日」 の日付を表示しておきたい場合などに

便利です。 また、今日の日付を動的に利用した計算などにも用います。

 

 

たとえば、「今年の残り日数」 をいつもワークシート上に表示しておきたい場合を考えて

みましょう。

 

本日 「2009/1/7」 から 「2009/12/31日」 までの日数を計算したいなら、適当なセルに

 

  ="2009/12/31"-"2009/1/7"

 

と入力すれば求めることができます。 でも、日付は毎日変わっていきます。

そこで、"2008/1/7" の代わりに TODAY() を利用して、

 

  ="2009/12/31"-TODAY()

 

とします。 こうすれば、明日になっても明後日になっても、正しい日数が計算されます。

 

 

次のシートでは、「今年の残りの日数を」 もう少しきちんと計算しています。 上のやり方

では、来年になったら計算式を変えなければなりません。 年が変わっても正しい日数を

求めたいなら、もうひと工夫した、こんな計算式が必要です。

today関数1_1.jpg

 

セル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キーを押しながら ; 「セミコロン」を押す)

とすれば本日の日付(のシリアル値)を素早く入力できます。

このショートカットキーでセルに入力されるのはシリアル値ですから、あらかじめセルに表示

形式を設定しておけば、好きな形式で簡単に日付の入力ができます。