• ベストアンサー

WEEKDAY関数の戻り値について。

例えば A1に2006/02/12が入っていて A3に2006/02/13が入っていて A2が空欄のとき、 B列にWEEKDAY関数を入れるとA2に7が表記されます。 IFとネストにして表記されないようにできるのはわかりますが、なぜ7が返ってくるのかわかりません。 どうして土曜日を表す7が空欄にでてくるのでしょうか?教えてください。よろしくお願いします。

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

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

こんばんは。 関数が引数のシリアル値を 0 と見なしているからではないでしょうか? 0 の表示形式を日付に変換すると 1900/1/0 となり、1900/1/1 (日)の1日前です。 従って、7 (土)と表示されると推測できます。 でも、エラーとなった方がスッキリしますよね。

hiro_goo
質問者

お礼

わかりやすい解答ありがとうございました。 最後のひと言が、うれしかったです。

その他の回答 (5)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

他の方の回答通りです。 試しに=A2とどこかのセルに入れてください。 結果として0が表示されます。さらにこのセルを日付の書式にすると1900/1/0と表示します。 これは日付上で1900年1月1日の1日前(1899年12月31日)となります。 この日の曜日が土曜日の為、7が表示されます。

hiro_goo
質問者

お礼

今日の午後、初心者用のエクセルの授業をしたのですが、この説明だと「そういうことかー」納得できます。ありがとうございました。

回答No.5

No4. の shikisaitoさんへ > ホントは、1900/01/01は日曜日ではなく、月曜日です。 素晴らしい!とても参考になりました。   MsgBox Weekday(#1/1/1900#)

回答No.4

ご参考まで。 ホントは、1900/01/01は日曜日ではなく、月曜日です。

参考URL:
http://support.microsoft.com/kb/106339/ja
hiro_goo
質問者

お礼

補足、ありがとうございました。 参考のURLも勉強になりました。

  • char_cat
  • ベストアンサー率45% (22/48)
回答No.3

No1dです。 表記を間違えました。 シリアル値 1は1900/1/1=日曜日       7は1900/1/0=1日前の土曜日 です。訂正します。

  • char_cat
  • ベストアンサー率45% (22/48)
回答No.1

エクセルのシリアル値は1が1900/1/1を意味します。 1の一つ前が0ですね。日付にすると1900/1/0になりますが、1900/1/1がWEEKDAY関数で7になりますので、その1日前は0になるということです。 つまり空白は0の値に等しいので、このような結果になります。

hiro_goo
質問者

お礼

最速で解答ありがとうございました。 補足コメントもありがとうございました。

関連するQ&A