• ベストアンサー

エクセル日付関数について

 日付関数の初歩的な質問です。  例えばtoday()で、セル書式が日付なら2009/1/4となります。セルの書式を標準にすればシリアル値がでます。そこでyear(today())とし書式が日付なら2009となると思ったのですが、結果は1905/7/1となりました。どういうことなのでしょうか。セル書式を標準にしたら2009となりました。  的はずれの質問かもしれませんが、なぜyear(today())とうつと1905/7/1となるのでしょうか。  

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ご存じのようですが、Excelでは日付はシリアル値(起点日から何日目か)で表します。 ですからtoday関数を使うと、今日を示すシリアル値が返ってきます。 そして、入力されたシリアル値が何年何月何日にあたるかを自動的に計算して表示するようにしたのが「日付」書式です。 一方、year関数はシリアル値から年号を求める計算を行う関数ですから、例えば2009などの数値が返ってきます。この書式を日付にすると、2009というシリアル値が何年何月何日にあたるかを計算して表示しようとします。その結果 1905/7/1 と表示されるわけです。

yy10
質問者

お礼

早速の回答ありがとうございます。

その他の回答 (1)

noname#77845
noname#77845
回答No.2

=year() 関数は、シリアル値を元にして、1900~9999までの整数を返します。 =year(today()) とすると、当然2009が返ってきますが、この値をシリアル値と見なして日付表示させると、1905/7/1になります。 因みに、シリアル値の1は1日を表します。なので、1をシリアル値と見なして日付表示させると、1900/1/1になるはずです。 この日から、2008日目がちょうど1905/7/1になっているのです。

yy10
質問者

お礼

 早速の回答ありがとうございます。

関連するQ&A