- ベストアンサー
Excel 2003の条件付書式に4つ目を追加
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! Excel2003までは条件付き書式は3条件までしか設定できませんね。 ただ、質問の(1)と(2)は一つの条件付き書式で設定可能です。 表のレイアウトははっきり判らないのですが、 (1)F3にその月の初日(1日)がシリアル値で入っていて、1か月分のカレンダーが行・または列方向にある。 (2)別Sheetに「祝日と振替休日」という名前定義された表がシリアル値で作成してある。 という前提条件があるとして・・・ 祝日・日曜の赤文字を一つの条件付き書式で設定してやります。 条件付き書式の数式欄に =OR(WEEKDAY(F3)=1,COUNTIF(祝日と振替休日,F3)) として「赤」のフォントを設定してみてください。 おそらく大丈夫だろうと思います。 ただ、第3金曜日の設定の方が少し難しいと思います。 F3~月末までのセルを範囲指定 → 条件付き書式の数式欄に =AND(WEEKDAY(F3)=6,SUMPRODUCT((WEEKDAY($F$3:F3)=6)*1)=3) という数式を入れ、書式から「ピンク」の塗りつぶしを設定してみてください。 ご希望通りになれば良いのですが・・・m(_ _)m
その他の回答 (1)
- tsubuyuki
- ベストアンサー率45% (699/1545)
日祝日をまとめて判定する方法は#1さんが紹介下さっていますので、 第3金曜日に関する件を補足として。 月の1日が金曜日であれば、第3金曜日は15日ですね。これが最速。 (14日が金曜でも、それは第「2」金曜日です。) 逆に一番遅いのは月の1日が土曜日の場合で、第3金曜日は21日です。 つまり、第「3」金曜日は、「15日~21日」にしか発生しません。 コレを利用して判定する方法もあります。 =AND(WEEKDAY(A1)=6,DAY(A1)>=15,DAY(A1)<=21) 関数的にはこちらの方が簡単だと思います。 おなじみのROUNDUP関数を使っても可能です。 =AND(WEEKDAY(A1)=6,ROUNDUP(DAY(A1)/7,0)=3) 「15~21」ですから、7で割って整数に切り上げてやると答えは必ず3です。 CEILINGと言う関数を使ってもできますね。 =AND(WEEKDAY(A1)=6,CEILING(DAY(A1),7)=21) 「15~21」ですから、7の倍数に切り上げてやれば必ず21、と言う意味です。 考え方次第で(簡単な関数でも)色々出来ますよ、と言うことで。 ※ご存知とは思いますが、DAY関数は、「○○日」部分だけを取り出す関数ですね。 使わないようで、覚えておくとYEAR・MONTH共々、何かに役立つ関数です。
お礼
ご教授して頂きありがとうございました。 第三金曜日は15~21日 大変柔軟な考え方だと思いました。 ぜひ参考にさせていただきます。
お礼
アドバイスして頂き有難うございました。 第三金曜日の設定につきましても、希望通りの結果となりました。