- ベストアンサー
エクセルカレンダーで29日以降の式の意味
エクセル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!とエラーとなる) 以上私の知識では、解けない疑問をご教示願いたいのです よろしく御願いします
- みんなの回答 (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で存在せない日を指定したと云う事でエラーとなるのです。 ご参考にならば幸甚です。
その他の回答 (1)
- kokorone
- ベストアンサー率38% (417/1093)
DAY(A29+1) は、A29+1 の日にちのみを求めるものです。 ですから、通常月は"29"になるのですが、2月の場合(うるう年を除く)1日となります。 この場合は、このセルに""を設定(何も設定しない)ということに なります。 なぜ4かは、わかりません。28でも構いませんし、 DAY(A29+1)<=A29でもかまいません。 A30+1、A31+1は、その参照する値が””となる場合、+1することが できないため、エラーになるのです。ですから、A29を基準に計算して います。
お礼
回答ありがとうございます 「A30+1、A31+1では#VALUE!とエラーとなる」理由が解りました。[”"]は文字列としての空白だからですね。 ANo.2 kokoroneさんの回答とあわせ疑問が解けました。ありがとうございました
お礼
詳しい回答ありがとうございます 齢まもなく70歳の油切れの頭にも良くわかる回答です。 ほんとうにありがとうございました。 今後ともご指導よろしく御願いします。