• ベストアンサー

Excel関数(カレンダー)

Excel2010を使用し、カレンダーを作っています。 土曜日のセルは「青の網掛け」、日曜日祝日のセルは「赤の網掛け」を、 条件書式にて設定したいのですがうまくできません。 カレンダーは月ごとにシートで分けており、 A列「日にち」、B列「曜日」、C列~E列「予定欄」を設けており、 土日祝日のセルはA~E列全て網掛けにしたいのです。 何卒ご教示頂きたく宜しくお願い致します。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えば今年の7月のカレンダーとしてA2セルには2013/7/1と入力して下方にA32セルまでドラッグコピーします。 B2セルから下方には曜日が表示されているとします。 そこでA2セルからE32セルの範囲を選択します。A2セルがアクティブセルの状態になっています。 「ホーム」タブの「条件付き書式」の「新しいルール」で「数式を使用して書式設定するセルを決定」を選択し、数式の窓には次の式を入力します。 =WEEKDAY($A2)=7 その後に「書式」で「塗りつぶし」のタブからパターンの色を青として「パターンの種類」で網掛けはないのですが好みの模様を選択してOKします。 次に再び条件付き書式の設定を行い、数式の窓には次の式を入力します。 =OR(WEEKDAY($A2)=1,COUNTIF(Sheet2!$A:$A,$A2)>0) 上と同様に「書式」では赤色で適当な模様を選択してOKします。 なお、シート2のA列には2013年ならその年の祝日が予め入力されていることが必要です。

sakuichi
質問者

お礼

ご回答有難うございました。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です! たびたびごめんなさい。 前回の土曜日の数式が間違っていました。 =AND($A1<>"",WEEKDAY($A1)=7) に変更してください。 前回の数式だと金曜日が「青」になってしまいます。 ※ 空白セルが「青」にならないようにしています。 (Excelでは 空白=0 とみなし、1900/1/0 のシリアル値になりみたいです。 1900/1/1が日曜のため、空白セルは「土曜日」と判断してしまうみたいです。) どうも失礼しました。m(_ _)m

sakuichi
質問者

お礼

なんども補足頂き恐縮です。有難うございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! たびたびごめんなさい。 前回の土曜日の数式が間違っていました。 =WEEKDAY($A1)=7 に変更してください。 前回の数式だと金曜日が「青」になってしまいます。 どうも失礼しました。m(_ _)m

sakuichi
質問者

お礼

なんども補足頂き恐縮です。有難うございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! A列の日付がシリアル値か文字列かによってやり方は変わってきます。 A列がシリアル値だとしての一例です。 別Sheetに祝日データシリアル値で作成し、そのデータ範囲を「祝日」と名前定義したとします。 ※ 作成した祝日データ範囲を範囲指定 → 左上の名前ボックス(セル番地が表示されているところ)に 祝日 と入力 → Enter これで「祝日」と名前定義できました。 各シートをグループ化(Sheet見出しの1月をクリック → Shiftキーを押しながら12月のSheet見出しをクリック) A~E列を範囲指定 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に =WEEKDAY($A1)=6 と入力 → 書式 → 塗りつぶしから「青」を選択 「新規ルール」 → 同様に数式欄に =OR(WEEKDAY($A1)=1,COUNTIF($A1,祝日)) という数式を入れ → 書式 → 塗りつぶしから「赤」を選択 → OK これでおそらく大丈夫だと思います。 尚、条件付き書式が複数設定してある場合、上位の行が優先されますので、 あるかどうか判りませんが、土曜日の祝日があるといけませんので 「赤」の条件付き書式を上側の行にしておきます。 条件付き書式の画面で「ルールの削除」の右側に▲・▼がありますので、それで移動可能です。 こんなんではどうでしょうか?m(_ _)m

sakuichi
質問者

お礼

ご回答有難うございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

あなたが具体的にどのようにカレンダーを作成しているのかに応じて、やり方は様々変わります。 現状が不明なので、まっさらから次のように作成します。 A1セルに年を記入する たとえば2013 B1セルに月を記入する たとえば7 A3セルに「日にち」と記入 A4セルに =IF(MONTH(DATE($A$1,$B$1,ROW(A1)))=$B$1,DATE($A$1,$B$1,ROW(A1)),"") と記入、セルの書式設定の表示形式のユーザー定義で d を設定し、下に31日までコピー貼り付ける B3セルに「曜日」と記入 更にどこか別のシート、仮にSheet2のA列に「祝日」の一覧を年/月/日で列記、出来るならセル範囲に「祝日一覧」と名前を定義する B4セルに戻り =IF(A4="","",IF(COUNTIF(Sheet2!A:A,A4),"祝",TEXT(A4,"aaa"))) と記入し、下に31日までコピー貼り付ける A:E列を必ず列選択する ホームタブの条件付き書式▼から新しいルールを開始 数式を使用して…を選び =$B1="土" と記入、書式▼でセルの塗色を青くする A:E列を必ず列選択する ホームタブの条件付き書式▼から新しいルールを開始 数式を使用して…を選び =$B1="日" と記入、書式▼でセルの塗色を赤くする A:E列を必ず列選択する ホームタブの条件付き書式▼から新しいルールを開始 数式を使用して…を選び =$B1="祝" と記入、書式▼でセルの塗色を赤くする

sakuichi
質問者

お礼

ご回答有難うございました。

関連するQ&A

専門家に質問してみよう