• ベストアンサー

?Format(Year(Date), "yyyy") の返り値が1905になる理由は?

イミディエイト ウィンドウで ?Year(Date) を実行すると 2010が返りますが ?Format(Year(Date), "yyyy") を実行すると 1905 が返って来ます。 どちらも2010が返ると思っていたのに こうなる理由がわかりません!! よろしくお願い致します。

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

  • ベストアンサー
  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

Format(Year(Date), "yyyy")=Format(2010, "yyyy")

vgfcdx
質問者

お礼

早速のご回答ありがとうございます。 Format(Year(Date), "yyyy")=Format(2010, "yyyy") というのはわかりました。 でもなぜ2010が1905になるのでしょうか? Format関数を使うと文字列になるんですよね? ためしに A1セルに2010と入力して セルの書式設定のユーザー定義で「YYYY」としてら 1905が返って来ます! なんだか答えに近づいた気もしますが もうちょっとヒントください!

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

> Format(Year(Date), "yyyy") 今の日付から年を表す数値をとりだし、それを日付シリアル値と見 なして該当する日付の年を4桁で返しなさい、と言っているのです から、2010という日付シリアル値で表される日がいつかを考えま しょう。 windows版では、1900年1月0日を起点として毎日1づつ増える数値を 日付シリアル値とします。1900年1月1日が1、同年2月1日が32、60 は実在しない2月29日になるバグ、だから1901年1月1日は367、そう やって指折り数えていくと2010は1905年7月2日ということになりま すね。だから1905が返ります。

vgfcdx
質問者

お礼

シリアル値に変換される!というのがみそですね。 ご回答ありがとうございます。

すると、全ての回答が全文表示されます。
回答No.2

DATEの単位が日(DAY)のようですね。 >セルの書式設定のユーザー定義で「YYYY」としてら を YYYY/MM/DD HH:MM:SS にして、A1に0を入れて返ってくる日が基点です。 0.5をいれると、プラス12時間。1を入れるとプラス1日。 2010を入れると2010日後で、5年とおよそ半日。

vgfcdx
質問者

お礼

難しいですがなんとなくわかりました!ご回答ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A