【エクセル】カレンダーの祝祭日に色を付けたい。どうする?
おはようございます。こんにちは。いたをです。
今日もエクセルの小ネタをお届け。昨日の記事の続編となります。
0.いつものあるあるから
エクセルを使って勤務表や、スケジュール表、日計表などを作成する場面、よくありますよね。
昨日の記事では「条件付き書式」の機能を使って、あらかじめ設定しておいた条件に合致したときに、自動的にセルや文字の色(文字装飾)を変える方法をご紹介しました。
なるほど。これで土日には対応できました。
では、祝祭日のときにセルや文字の色(文字装飾)を変える方法はないのでしょうか?
1.残念ですが・・・
結論から先に言ってしまうと、祝祭日のときにセルや文字の色(文字装飾)を自動的に変えることは出来ません。
なぜなら、
祝祭日は国によって違うからです。また日付をあつかうシリアル値にも祝祭日のデータは入ってません。
残念でした。できませ・・・、
と言って今日の記事を終わらせてもいいかな、と思ったのですが一手間かけると祝祭日も条件付き書式を使ってセルや文字の色(文字装飾)を変えることができるのです。
これからその一部始終をご紹介していきましょう。
2.祝祭日の表を作ろう
まずはその年の祝祭日の表を作成しましょう。
自分で作成してもいいですし、インターネットを探してみると、祝祭日のエクセルデータやCSVファイルデータを配布しているサイトもありますので活用しましょう。
あとからの作業に便利なように祝祭日の月日の範囲を「祝祭日」と名前をつけておきます。
(セル範囲には名前をつけて管理ができるんです!)
Sheet1の方には昨日の方法で作成したカレンダー表を提示していますね。
3.「MATCH関数」を使って該当する日付があるかどうかを探す
ここで関数の登場です。
今日は「MATCH(マッチ)関数」というものを使います。
この関数は「セルの範囲で指定した項目を検索し、その範囲内の項目の相対的な位置を返す」というものです。
なんのこっちゃ。
分かりやすく噛み砕いて説明すると、祝日の一覧の表の中に同じ日にち月日を見つけたら、祝日の表の上から何番目にその月日があるよ!と教えてくれるということです。
まずは下の図を見てみましょう。
メモ!
MATCH関数
セルの範囲で指定した項目を検索し、その範囲内の項目の相対的な位置を返します。
=MATCH(検査値,検査範囲,[照合の型])
・検査値は探したい値ですね(月日)
・検査範囲は検索するセルの範囲のことです。今回は祝祭日のリストですね。
・照合の型は分かりやすく言うとキッチリ同じものか、少し曖昧でもいいのかということです。ここではキッチリ同じ(完全一致)ということで"0"を入れています。
#N/Aとエラーメッセージになっているところは、該当する日付がありませんでしたということを表しています。
数字になっているところは、「祝祭日」選択範囲の中に一致した月日があった!ということで、「祝祭日」選択範囲の上から何番目にありましたよということを示しています。
ここで祝祭日の有り無しが見えてきましたね。
でもこのままではまだ条件付き書式は作れません。
4.「ISERROR関数」を使って、エラーかエラーでないかの2択にする
メモ!
ISERROR関数
セルの値がエラーかどうか調べる関数です。
=ISERROR(チェックする対象)
図のとおりエラーのところは「TRUE」に、エラーでない数字が表示されているところは「FALSE」と表示されましたね。
5.「NOT関数」で「TRUE」と「FALSE」をひっくり返します
最後にNOT関数を使って、「TRUE」と「FALSE」をひっくり返します。
メモ!
NOT関数
「TRUE」と「FALSE」をひっくり返します。
=NOT(チェックする対象)
6.これで条件の式は完成。新しい条件書式の設定をしよう
あとは、数式バーに出ている
=NOT(ISERROR(MATCH(A2,祝祭日,0)))
を条件付き書式の設定に放り込んであげましょう。
分かりやすいように緑色にしました。
どうでしょうか? ちゃんと祝祭日のところのセルに色が入りましたね。
これで完成です。
まとめ
いかがでしたでしょうか。
関数を駆使することによって、祝祭日のところも色をつけることが出来ました。
関数を組み合わせるところが難易度高めですが、
年1回の作業でしたら、そんなに手間もかからないでしょうし、一度フォーマットを作ってしまえば、祝日のシートを修正するだけで、ずっと使えるカレンダーになります。
エクセルは奥深いですね。
それではまた。