アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003でカレンダーを作るため調べたところ
29日以降を表示するセルに次のような式と説明がありました
29日(A30) =IF(DAY(A29+1)<4,"",A29+1)
30日(A31) =IF(DAY(A29+2)<4,"",A29+2)
31日(A32) =IF(DAY(A29+3)<4,"",A29+2)

上記について次の式の意味を教えてください
疑問点1 DAY(A29+1)<4 の意味
疑問点2  疑問1が解けると解るのかもしれませんが上の式でなぜ4より小さいとするのか 
疑問点3 疑問1が解けると解るのかもしれませんが30日がA29+2で31日がA29+3なのか(A30+1、A31+1では#VALUE!とエラーとなる)
以上私の知識では、解けない疑問をご教示願いたいのです
よろしく御願いします

A 回答 (2件)

前半は既に回答が挙がっている通りです。

念のため説明しますと、
(1)はDAY(A29+1)はA29の翌日を指します。「<4」それが4未満と云う事。
(2)これは先に31日迄見てみましょう。
28日の翌日は、29日となる場合と1日(平年の3月)となる場合があるのでここを基準とします。不等号は<2となります。
28日の翌々日(A29+2)は30日の場合と1日(閏年の3月)の場合と2日(平年の3月)の場合があります。不等号は<3となります。
29日の翌々々日(A29+3)は31日の場合と1日の場合と2日(閏年の3月)の場合と3日(平年の3月)の場合とがあります。不等号は<4となります。
単に不等号の後の4は揃えただけの感じもしますが、最後は「<4」でなければいけませんし、その前は「<3」と、その又前は「<2」となりますので日々異なる煩を厭うて揃えて「<4」としたかと思います。
(3)上で見てきたように、2月29日(平年)、2月30日、4月31日等は存在せない日です。これを指定すればExcelで存在せない日を指定したと云う事でエラーとなるのです。
ご参考にならば幸甚です。
    • good
    • 0
この回答へのお礼

詳しい回答ありがとうございます
齢まもなく70歳の油切れの頭にも良くわかる回答です。
ほんとうにありがとうございました。
今後ともご指導よろしく御願いします。

お礼日時:2008/09/22 10:58

DAY(A29+1) は、A29+1 の日にちのみを求めるものです。


ですから、通常月は"29"になるのですが、2月の場合(うるう年を除く)1日となります。
この場合は、このセルに""を設定(何も設定しない)ということに
なります。
なぜ4かは、わかりません。28でも構いませんし、
DAY(A29+1)<=A29でもかまいません。
A30+1、A31+1は、その参照する値が””となる場合、+1することが
できないため、エラーになるのです。ですから、A29を基準に計算して
います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
「A30+1、A31+1では#VALUE!とエラーとなる」理由が解りました。[”"]は文字列としての空白だからですね。
ANo.2 kokoroneさんの回答とあわせ疑問が解けました。ありがとうございました

お礼日時:2008/09/22 10:55

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