dポイントプレゼントキャンペーン実施中!

イミディエイト ウィンドウで
?Year(Date)

を実行すると
2010が返りますが

?Format(Year(Date), "yyyy")
を実行すると
1905
が返って来ます。

どちらも2010が返ると思っていたのに
こうなる理由がわかりません!!
よろしくお願い致します。

A 回答 (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が返ります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/28 00:03

DATEの単位が日(DAY)のようですね。



>セルの書式設定のユーザー定義で「YYYY」としてら



YYYY/MM/DD HH:MM:SS

にして、A1に0を入れて返ってくる日が基点です。
0.5をいれると、プラス12時間。1を入れるとプラス1日。

2010を入れると2010日後で、5年とおよそ半日。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/28 00:02

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

    • good
    • 0
この回答へのお礼

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

Format(Year(Date), "yyyy")=Format(2010, "yyyy")
というのはわかりました。

でもなぜ2010が1905になるのでしょうか?
Format関数を使うと文字列になるんですよね?

ためしに
A1セルに2010と入力して
セルの書式設定のユーザー定義で「YYYY」としてら
1905が返って来ます!

なんだか答えに近づいた気もしますが
もうちょっとヒントください!

お礼日時:2010/02/23 22:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A