
エクセルで祝日を判定するには、COUNTIF関数で自動化する。政府のe-Gov公開CSVやPower Queryで定期的な祝日データ更新したり、外部API連携によって自動判定したりすることも可能だ。
目次
ビジネスの現場で、日付データを扱う際に「この日が祝日かどうか」を判定する場面は少なくない。手作業で祝日を調べるのはミスが起こりやすく、時間も無駄にしてしまう。
本記事では、エクセルを使って祝日判定を簡単かつ自動で行う方法を詳しく解説していく。
エクセルで祝日判定が必要になるシーンとは?
エクセルで祝日判定が役立つ場面は、業種や用途を問わず幅広くある。ここでは代表的なシーンを紹介しよう。
■勤怠管理・給与計算
従業員の出勤日数を管理したり、給与計算を行ったりする際には、土日だけでなく祝日も除外する必要がある。祝日出勤には割増賃金が発生するケースもあるため、正確な祝日判定は欠かせない。
■プロジェクトの納期管理
納期や進捗管理では、稼働日ベースでスケジュールを組むことが多い。祝日を考慮せずにスケジュールを立ててしまうと、実際の作業日数にズレが生じ、プロジェクトの遅延リスクにつながりかねない。
■社内カレンダーやスケジュール表の作成
社内用のカレンダーやスケジュール表でも、祝日を反映させることで、業務予定の見通しが立てやすくなる。祝日を可視化することで、会議日程の設定ミスなども防止できる。
エクセルで祝日を判定する基本の考え方
祝日判定を正確かつ効率的に行うためには、基本的な仕組みを理解しておく必要がある。
■祝日一覧表を用意するのが基本
祝日判定には、基準となる「祝日リスト」が必須である。まずは、別シートにその年の祝日を日付形式で入力しておく。祝日名を入力する必要はなく、日付だけがあれば問題ない。この祝日リストが、判定式の基礎データとなる。
■関数で祝日判定する仕組みを作成
エクセル関数を使い、対象日が祝日リストに存在するかを判定する。VLOOKUP関数やCOUNTIF関数を使えば、祝日の有無を自動でチェックできる。祝日リストに一致する日付があれば「祝日」、なければ「平日」といった仕組みを作ることができる。
COUNTIF関数で祝日を判定する基本手順
ここでは、もっともシンプルに祝日判定ができる方法として、COUNTIF関数を使った手順を解説する。
■STEP1:祝日リストを作成する
まず、別シート(例:「祝日リスト」)に、その年の祝日をすべてリストアップする。A列に日付のみを、日付形式で入力していく。入力ミスや書式ズレを防ぐためにも、必ず日付のセル形式を統一しておくことが重要である。
■STEP2:COUNTIF関数で祝日を判定する
A列にある日付が祝日リストに存在するかどうかを判定するため、B列に次の式を入力する。
=IF(COUNTIF(祝日リスト!$A$1:$A$19,A1)=1, “祝日”, “”)
一致する日付が1件以上あれば「祝日」と判定し、一致しなければ空白(””)を返す式となっている。
祝日リストを自動更新する応用手法
毎年手動で祝日リストを更新するのは面倒である。ここでは、祝日リストを自動更新する応用的な方法を紹介する。
■日本政府公開データの活用
内閣府のサイトでは、祝日の一覧データをCSV形式などで公開している。このデータをエクセルに取り込めば、正確な祝日リストを短時間で作成できる。
■外部APIの活用
さらに高度な方法として、外部APIを利用する手段もある。例えば、WEBSERVICE関数を使い、インターネット上の祝日情報APIにアクセスして祝日判定を行うことができる。
=WEBSERVICE(“http://api.excelapi.org/datetime/holiday?date=” & A1)
A列に日付が入力されている場合、この式をオートフィルで下方向にコピーすれば、各日付に対して祝日名が自動で取得できる。祝日でない場合は空欄となる。これにより、祝日リストの手動更新が不要となり、API側で祝日が追加・変更されても自動反映される仕組みが作れる。
ただし、WEBSERVICE関数はExcel 2013以降のWindows版のみで対応しており、インターネット接続も必須である。