- ベストアンサー
第2、第4火曜日などの(関数)表示方法について
EXCEL2003を使い”家庭のカレンダー”作っています 年、月(A列)を入力すると日(B列)、曜日(C列)が自動的に縦方向に入力されます (D列)に月、金曜日は可燃ごみの日 火曜日は不燃ごみの日と入力されます ここまでは問題ありませんが 第2火曜日は資源ごみ 第4火曜日は危険ごみ としたいのですが第2、第4をどのようにしたら旨く行くのか解りませんので教えてください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例えばA1セルに2013年2月と入力します。数式バー上では2013/2/1と日付となって表示されます。 そこでB1セルには次の式を入力して下方にドラッグコピーします。 =IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,"") B列の表示形式は「ユーザー定義」で d"日" とすることでその月の末日までが自動的に表示されます。 C1セルには次の式を入力して下方にドラッグコピーします。 =IF(B1="","",TEXT(B1,"aaa")) D1セルには次の式を入力して下方にドラッグコピーします。 =IF(OR(C1="月",C1="金"),"可燃ごみの日",IF(C1="火",IF(COUNTIF(C$1:C1,C1)=2,"資源ごみの日",IF(COUNTIF(C$1:C1,C1)=4,"危険ごみの日","不燃ごみの日")),""))
その他の回答 (2)
- tsubuyuki
- ベストアンサー率45% (699/1545)
追記です。 例えば、 ・A1セルに「年」 ・A3セルに「月」 ・B列に「日」を表す生数字 ・C列に「曜日」 が入っているのであれば 式:=IF(AND(C1="土",B1>=8,B1<=14)=TRUE,"資源ゴミ",IF(AND(C1="土",B1>=22,B1<=28)=TRUE,"危険ゴミ","")) (以下、コピー貼り付け)で可能ですね。 ついでなので・・ 式:=IF(AND(C1="土",B1>=8,B1<=14)=TRUE,"資源ゴミ",IF(AND(C1="土",B1>=22,B1<=28)=TRUE,"危険ゴミ",IF(OR(C1="月",C1="金")=TRUE,"可燃ごみ",IF(C1="火","不燃ごみ","")))) これで、網羅です。 長いですねぇ。
- tsubuyuki
- ベストアンサー率45% (699/1545)
第2土曜日である条件ってどんな感じでしょう?と考えると早いですね。 簡単に作るためにそこをIF関数とAND関数、DAY関数を使って処理してやります。 お作りのカレンダーの「日」「曜日」をどのように表示しているかわかりませんので、 B列が「日付形式」で入るセルで、表示形式や関数などで「日」部分だけを表示してあるとして、 ・土曜日である事(当然ですね^^;) 判定するための式:WEEKDAY(日付)=7 ・8日(含め)以降であること(7日だと第1土曜ですから) 判定するための式:DAY(日付)>=8 ・14日(含め)以前であること(15日だと第3土曜ですね) 判定するための式:DAY(日付)<=14 こんな感じですね。 これらすべて満たすために、AND関数でまとめ、IF関数に渡します。 よって、 式:=IF(AND(WEEKDAY(日付)=7,DAY(日付)>=8,DAY(日付)<=14)=TRUE,"資源ゴミ","") こう書くことが出来ます。 第4土曜日についても同様に考えてやります。 22日以降28日までですね。 なので、 式:=IF(AND(WEEKDAY(日付)=7,DAY(日付)>=22,DAY(日付)<=28)=TRUE,"危険ゴミ","") ですね。 両方合わせて・・・と言うのであれば 式:=IF(AND(WEEKDAY(日付)=7,DAY(日付)>=8,DAY(日付)<=14)=TRUE,"資源ゴミ",IF(AND(WEEKDAY(日付)=7,DAY(日付)>=22,DAY(日付)<=28)=TRUE,"危険ゴミ","")) コレで行けると思いますよ。 長い式ですが、落ち着いて読んでみると意外と単純です。 各関数の詳細については別途お調べくださいませ。
お礼
早速のすばやいお返事ありがとうございました 1から7の使い方以前見たような気がしてもう一度復習中です
お礼
早速のご指導ありがとうございます