便利なカレンダーをつくる 2013Excel関数技BEST 64回

Excelでカレンダー、月が変わると祝日が変わる

今回作るカレンダーは、元カレンダーを作ると、あとは月を入力すれば、その月の祝日が表示されるものです。 休日がカレンダーどおりの方は、カレンダーや日程表に祝祭日も表示できるので、手間がかかりません。
DATE関数で日付を取得し、IF関数とCOUNTIF関数とVLOOKUP関数で祝祭日を表示します。

(サンプルファイルは、こちらから 2013関数技64回サンプルデータ

先に祝日表をつくる

カレンダーの式を入力する前に祝日表を作っておきます。
サンプルは、2014~2017年までの祝日一覧表です。
2014~2017年までの祝日一覧表
日付と曜日、祝日名の記載があります。
日付の隣の曜日を出すのは、簡単です。=A3と隣のセルのシリアル値を取得し、セルの書式設定で、ユーザー定義でaaaと記入してやるだけです。
日付のシリアル値から曜日

Excelの式が簡単になるように範囲に名前をつける

あとの式が簡単になるように範囲に名前をつけます。
日付の範囲を選択して、数式タブの名前の管理から、選択範囲から作成をクリックして、日付の範囲に日付と名前を付けました。
日付範囲に名前
今度は、表全体を選択して、名前の定義から祝日表という名前をつけます。
名前の定義
スポンサーリンク
スポンサーリンク

では、カレンダーに祝日を表示するようにしましょう。

曜日のセルB3には、日付を取得する式が入力されています。
DATE関数を使ってA1セルの年、D1セルの月、A3セルの日から、
=DATE($A$1,$D$1,A3)
日付を作成して、それをセルの書式設定から曜日を表示しています。
ユーザー定義で(aaa)と記入しています。
カレンダーに祝日
隣のC3セルには、祝日ならば、祝日を表示し、そうでなければ空白という式が入っています。 IF関数とCOUNTIF関数とVLOOKUP関数です。
=IF(COUNTIF(日付,B3),VLOOKUP(B3,祝日表,3,0),"")
祝日を表示する式
=IF(論理式, [真の場合], [偽の場合])

IF関数
論理式の部分が、 COUNTIF(日付,B3)で、
”名前で定義した日付の範囲で、B3すなわち=DATE($A$1,$D$1,A3)で返される日付と同じものをカウントしなさい。”
COUNTIF関数で祝日ならば1、祝日でなければ0を返してきますから、それはそのまま、1=TRUE、0=FALSEとなります。

真(1=TRUE)の場合の処理が、 VLOOKUP(B3,祝日表,3,0)で、
検索値”B3"の日付を名前で定義した祝日表の最左列から探して、
該当すれば、指定した列番号3の値(祝日)を返します。
儀の場合の処理は、" "(空白)です。
複雑な式を作るときに、範囲を名前で定義していると、スッキリします。
月を変えると祝日が変わる便利なカレンダーの完成です。
また、月末の29日から31日の式を関数技63回の式を入力しておくと、万年カレンダーになります。
祝日を自動で表示するカレンダー
スポンサーリンク
スポンサーリンク