Excelで日付の表を作成した場合に、休みの日は色を変えたい時があるかと思います。
通常のカレンダーだと土曜日が青色、日曜日と祝日が赤色になっていますしね。
↓こんな感じで休みの日がわかるようにしたい

その方法について記載をしていこうと思います。
Excelで祝日を判断するのは面倒
土曜日を青くする、日曜日を赤くするのはWeekDay関数と条件付き書式を組み合わせればかんたんに実現できます。(後述します。)
ただ、Excelの標準では「日付が祝日かどうか」という判断をする関数が用意されていません。
祝日は、「日曜日と被ると翌日が休日になる」、「海の日は第3月曜日(日が年によってずれる)」など複雑な条件もあり自作関数を作るのも面倒です。
自分で実装する気には到底慣れませんが…、ネットで調べてみると複雑なロジックを組んで休日判定を行っている方がいました。
コード
https://github.com/Z1000R/determining-and-retrieving-holidays
ただ、天皇陛下が変わって天皇誕生日が変わったり、オリンピック開会式が祝日になったりとイレギュラーな変更も発生しますので、コードのアップデートは都度必要になりそうです。
お手軽に実装する方法はないか考えたのですが、最新の祝日を公開してくれているAPIを利用させてもらうのが良さそうでした。
※Office365を使用しています。他のバージョンのExcelでは対応できない可能性があります。
APIで祝日の一覧を取得する
祝日を公開してくれているAPIが以下になります。
https://holidays-jp.github.io/api/v1/date.json
以下の手順で上記APIで取得できるデータをExcelに取り込みします。
1.データタブにある「データの取得」をクリックします。

2.「その他のデータソースから」→「Webから」をクリックします。

3.「https://holidays-jp.github.io/api/v1/date.json」を入力しOKボタンをクリックします。

4.接続ボタンをクリックします。

5.テーブルへ変換をクリックします。

6.閉じて読み込むをクリックします。

これでAPIから最新の祝日の一覧をゲットすることが出来ました。Excel上に日付と祝日の名称が転機されます。
※最新のデータを再取得する場合は、データタブの「すべて更新」をクリックすればよいです。

条件付き書式で祝日の場合に赤色に変更する
最後に条件付き書式を使用して以下の3点を実現します。
- 祝日の場合は赤色にする
- 日曜日の場合は赤色にする
- 土曜日の場合は青色にする
色を塗りたい日付のセルを選択した状態で、ホームタブ→条件付き書式→新しいルールをクリックします。

ここからは、文字色を変えたいセルのアドレスが「A2」であることを前提に記載していきます。
書式ルールの設定ダイアログで「数式を使用して、書式設定するセルを決定」をクリックします。

そして、「次の数式を満たす場合に値を書式設定」に以下の式を設定します。
=OR(WEEKDAY(A2)=1,COUNTIF(date!A:A,A2))
※APIで取得した休日のデータが「data」シートのA列に入力うされていることを前提に記載しています。デフォルトだとその様になるはずです。
次に書式ボタンをクリックします。

フォントタブから色を赤に設定します。

これで日付が祝日または日曜日の場合に赤色に変更することが出来ました。

同じ方法で土曜日の場合に青色に設定します。
再び条件付き書式を開きます。

以下の式を設定し、文字の色は青色に設定します。
WeekDay(A2) = 7
このセルをオートフィルで引っ張れば、休日に赤色が付く状態の日付の列が作成できます。
夏休みとかも反映させたい場合
祝日だけでなく、会社とか自分の独自の休みを反映させたい場合もあるかと思います。
その時は、祝日を取得してきたdataシートのA列に値を追加すればよいかと思います。

コメントを残す