「万年カレンダーを作ろう(2)」の質問

万年カレンダーを作ろう(2)」をやった生徒さんから、
こんな質問があったそうです。

「祝日の他に、誕生日を入れたい。
その誕生日が平日だったら、緑色で表示したい場合、
どうしたらいいか。」

ん~、けっこうシビアな質問です (^^;
方法はいくつか思いつきますが、
どれも、かなり繁雑になってしまいます。
とりあえず、解決法を3つ。


1.いちばん簡単な方法
緑色にしたい日だけ、手作業でフォントを緑にする。

誕生日がたくさんなければ、これが現実的。
でも、エクセルの勉強にはならないし、芸がない。


2.「誕生日」シートを作る方法
テキストの5のところは、
「もし、「祝日」シートにデータがあれば、表示しろ」
というものですが、それを、
「もし、「祝日」シートまたは「誕生日」シートにデータがあれば、表示しろ」
に変えます。

日付の色については、
条件付き書式設定は、別シートを参照できないので、
たとえば、「カレンダー」シートのAA列より右などを使って、
「誕生日」シートのデータを、「カレンダー」シートに取り込まないといけない。

この方法は、慣れてる人であれば、それほど手間無くできますが、
関数も長くなるし、
「カレンダー」シートの見えないところにデータを入れるので、
印刷のときに注意しないと、大量に白紙がでてきたり。
「あまり美しくない解決法」と言えます。

ただ、「誕生日だけじゃなく、記念日はピンクにしたい」など、
いろんな要望を取り入れていくことが、できるようになります。


3.キーワードを入れる方法
祝日に、特定のキーワード(たとえば「誕生日」)が入っていたら、
書式を変える方法です。
これは、
「条件付き書式設定が複数マッチした場合、上の条件ほど優先される」
というルールを使います。

日付セルの書式設定で(テキストの4のところ)、
「条件1:もし、A13(祝日名がくる)に「誕生日」が入っていたら、緑にする」
「条件2:もし、A13が空白でなかったら、赤くする」
という2つの条件を入れます。
「ただし、日曜日なら赤くする」としたいときは、条件1より先に、
「もし、日付が日曜日なら、赤くする(Weekday関数を使う)」
という条件を入れておきます。


3が、今回の質問にいちばんマッチしているかな、と思うので、
サンプルに手を加えてみました。
修正サンプルのダウンロードはこちら