• ベストアンサー

エクセルカレンダーで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!とエラーとなる) 以上私の知識では、解けない疑問をご教示願いたいのです よろしく御願いします

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

  • ベストアンサー
  • LN-TF
  • ベストアンサー率53% (320/596)
回答No.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で存在せない日を指定したと云う事でエラーとなるのです。 ご参考にならば幸甚です。

sainokuniob
質問者

お礼

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

その他の回答 (1)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

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

sainokuniob
質問者

お礼

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

関連するQ&A

  • 月カレンダー作成中。文字の色を変えたい…

    よろしくお願いします。エクセル2010バージョンです。 月カレンダーを作成しています。セルに日付を入力(たとえば2012/08/30)と入力したのち、 カレンダー内の日にち(数字1~31)の文字色を土曜日・日曜日のみ赤に変える手法を教えてください。 セル内の背景色を変えるのではなく、文字の色を赤にしてみたいのです。 ところが、条件付き書式の設定がわからずここで止まってしまいました。 なおカレンダー日付の月初1(日)を表示するセルには、=IF(A1="","",A1) と入力しています。 A1に日付を入力。 カレンダー日付の翌日2(日)は、=IF(A4="","",IF(DAY(A4+1)=1,"",A4+1)) と入力しています。 A4は 日付の1(日)を表示しているセルです。 このように3(日)、4(日)・・・とコピペで作成しています。 ところが、条件付き書式の設定をどのようにするかで止まっています。 条件付き書式の部分をどのように設定したらいいか、ご教示下さい。 この条件書式の設定がどうも苦手なので、この部分は一手一手わかりやすく教えていただければ嬉しいです。 よろしくお願いします。

  • excelでのカレンダーコントロールの設定について

    excelでカレンダーコントロールを設定しました。 ターゲットとしているセルが、結合セルなのですが、うまく表示されません。セルの結合を解除すればうまくいきます。 しかし、ターゲットのセルは結合させておきたいので、何か解決策はありますでしょうか? 以下、コードの内容です。 ■フォームコード Private Sub Calendar1_DblClick() ActiveCell.Value = Me.Calendar1.Value End Sub ■シートコード Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$6" And Target.Address <> "$A$13" And Target.Address <> "$A$20" And Target.Address <> "$A$27" Then Exit Sub UserForm1.Show End Sub

  • エクセルでのカレンダー表記

    エクセル2003なのですが セルにカレンダー表記をさせたいのですが 挿入→オブジェクトでのカレンダーでした場合 どうしても 当日が反転してるので セル自体に日&曜日を入れようと思うのですが =IF(B5="","",MID("日月火水木金土",WEEKDAY(B5),1))で曜日 =IF(B1="","",IF(B2="","",(DATE(1988+B1,B2,1))))で日を計算させた場合 毎月一番左(上)は1日になってしまいます。 実際のカレンダーのように 曜日が 月火水木金土日 の順番で 1wごとに表記させたいのですがどうすればいいのでしょうか? 年 月は別のセルに入力はする予定です

  • エクセルの式で

    エクセルの式で、IF関数を使って、[A2]=IF(A1=0,"",A1) とすると、A1=0なら、A2を空白にしてくれますが、このとき、[A4]=A2+A3 とすると、A2が空白の時、エラー、#VALUEになります。このとき、空白を0として計算するようにできますか? 帳簿の中に、0がたくさんあるのは嫌なので、0のところを空白になるよう、IF関数で””を使いました。しかし、実際に空白になったところを、他の式で参照して、計算すると、その分が、文字のように認識し、計算がエラー、#VALUEになるわけです。これを避けることはできますか?

  • excelカレンダーに集計表

    この掲示板にて、カレンダーの作り方を拝見しました。 カレンダー日付の下に毎日累計値を入れていき、 その下に当日分の使用量が出るようにしたいのですが、 未熟者の為、月の変わり目が流動的でうまく式がたてれません。 ご教授の程よろしくお願いします。 今回参考にさせて頂いたカレンダーの元は下記のものです tazsan転用申し訳ありません。 D1に年(2004)、D3に月(12)と入力します。 一行あけてA5からG5までに、日・月・火・・・と曜日を A6 第一週日曜日 =IF(WEEKDAY(DATE($D$1,$D$3,1))=1,1,"") B6 第一週月曜日 =IF(ISNUMBER(A6),A6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=2,1,"")) C6 第一週火曜日 =IF(ISNUMBER(B6),B6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=3,1,"")) D6 第一週水曜日 =IF(ISNUMBER(C6),C6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=4,1,""))   ・   ・  以降、 A7 第二週の日曜日 =G6+1 B7 第二週の月曜日 =A7+1 C7 第二週の火曜日 =B7+1 ・・・という風に、第四週の土曜日までは前日に+1する計算式を書きます。 第五週は最終週なのですこし違います。 A10 第五週の日曜日 =IF(G9+1<=DAY(DATE($D$1,$D$3+1,1)-1),G9+1,"") B10 第五週の月曜日 =IF(ISNUMBER(A10),IF(A10+1<=DAY(DATE($D$1,$D$3+1,1)-1),A10+1,""),"") C10 第五週の火曜日 =IF(ISNUMBER(B10),IF(B10+1<=DAY(DATE($D$1,$D$3+1,1)-1),B10+1,""),"") D10 第五週の水曜日 =IF(ISNUMBER(C10),IF(C10+1<=DAY(DATE($D$1,$D$3+1,1)-1),C10+1,""),"")         ・         ・ これで、年と月を書き換えると日付が自動表示されるようになります

  • エクセルカレンダーの作り方

    エクセル2003でカレンダーを作成したいです。 作成方法を教えていただきたく投稿いたしました。 祝日カレンダーというシートを作成し、 A5~A50まで日付(2013/01/01と表記) B5~B50まで祝日の名前が入った表を作成しました。           A       B      6  2013/01/01   元旦 7  2013/01/14   成人の日 8  2013/02/11   建国記念の日 9  2013/03/20   春分の日 10 2013/04/29   昭和の日 といった感じです。 別シート「シート1」のE2のセルに 2013/01/01 と日付をいれてあります。 この日付は毎日変わるのですが、そのすぐしたのセルE3のセルに 祝日カレンダーシートに対応している日付がきたら、祝日の名前を表示させたいのです。 1/1なら元旦。1/14なら成人の日。 といった感じです。 このやり方を教えていただけないでしょうか。 よろしくお願い致します。

  • エクセルでカレンダーを作りたいのですが。

    エクセル2003を使用しています。 次のようなカレンダーを作成したいと思います。 A1に2006などの年、A2、B2~に3/6などの月日、そしてA3、B3~に曜日(月、火…)の入ったカレンダーです。 A1の「年」やA2の「月日」を変更したら自動的に日にち(30日まで31日まで)や曜日が変わるようにするにはどうしたらいいですか? よろしくお願いします。

  • エクセル 条件式

    セルA1が10より低いと1、10より高いと2が入力されるという条件式(1)はわかるのですが、セルA1<10の時1、10<A1<20の時2、20<A1<30の時3、30<A1<40の時4、という条件式を知りたいです。ご教示お願いします。 (1)IF(A1<10,1,2)

  • 月間予定表の作り方

    エクセルで月間予定表を作ろうと思っています。参考資料にこのような 式が入力されていたのですが 意味がわからないので教えてください。     A       B       C 1 2          2007/10/1   3            日      予定 4 5 B4セルに=IF(B2=””,””,B2) B5セルに=IF(B4=””,””,IF(DAY(B4+1)=1, ””,B4+1)) B5セルの式の後半部分のIF(DAY(B4+1)=1 のこの意味がわかりません。教えてください。

  • エクセルVBAでカレンダー作成したいのですが(罫線)

    エクセルVBAでカレンダーを作りたいのですが、次の点が分かりません。 1. 月末日が4週目にくる場合と5週目にくる場合があり、罫線を引く範囲が変わってしまいます。usedrange等で範囲指定後罫線を引きたいのですが、各セルは数式により日にちを表示させているので、月末日以降の空白セルまで範囲指定指定しまい4週で終わる月であっても5週目まで罫線を引くことになります。セル内の数式を無視し、月末日までの週を範囲指定する方法をご教授ください。

専門家に質問してみよう