カレンダーに祝日を表示
便利なカレンダーをつくる 2013Excel関数技BEST 64回
月が変わると祝日が変わるカレンダー
祝日表の準備ができたので、今度はカレンダーに祝日を表示させていきましょう。63回で作成したカレンダーを使用しています。
IF関数で祝日かどうかを場合分け
では、カレンダーに祝日を表示するようにしましょう。
曜日のセルB3には、日付を取得する式が入力されています。
DATE関数を使ってA1セルの年、D1セルの月、A3セルの日から、
=DATE($A$1,$D$1,A3)
日付を作成して、それをセルの書式設定から曜日を表示しています。
ユーザー定義で(aaa)と記入しています。

曜日のセルB3には、日付を取得する式が入力されています。
DATE関数を使ってA1セルの年、D1セルの月、A3セルの日から、
=DATE($A$1,$D$1,A3)
日付を作成して、それをセルの書式設定から曜日を表示しています。
ユーザー定義で(aaa)と記入しています。

隣のC3セルには、祝日ならば、祝日を表示し、そうでなければ空白という式が入っています。
IF関数とCOUNTIF関数とVLOOKUP関数です。
=IF(COUNTIF(日付,B3),VLOOKUP(B3,祝日表,3,0),"")

=IF(論理式, [真の場合], [偽の場合])

論理式の部分が、 COUNTIF(日付,B3)で、
”名前で定義した日付の範囲で、B3すなわち=DATE($A$1,$D$1,A3)で返される日付と同じものをカウントしなさい。”
COUNTIF関数で祝日ならば1、祝日でなければ0を返してきますから、それはそのまま、1=TRUE、0=FALSEとなります。
”名前で定義した日付の範囲で、B3すなわち=DATE($A$1,$D$1,A3)で返される日付と同じものをカウントしなさい。”
COUNTIF関数で祝日ならば1、祝日でなければ0を返してきますから、それはそのまま、1=TRUE、0=FALSEとなります。
偽の場合の処理
真(1=TRUE)の場合の処理が、 VLOOKUP(B3,祝日表,3,0)で、
検索値”B3"の日付を名前で定義した祝日表の最左列から探して、
該当すれば、指定した列番号3の値(祝日)を返します。

検索値”B3"の日付を名前で定義した祝日表の最左列から探して、
該当すれば、指定した列番号3の値(祝日)を返します。

偽の場合の処理は、" "(空白)です。
複雑な式を作るときに、範囲を名前で定義していると、スッキリします。
月を変えると祝日が変わる便利なカレンダーの完成です。
また、月末の29日から31日の式を関数技63回の式を入力しておくと、万年カレンダーになります。

複雑な式を作るときに、範囲を名前で定義していると、スッキリします。
月を変えると祝日が変わる便利なカレンダーの完成です。
また、月末の29日から31日の式を関数技63回の式を入力しておくと、万年カレンダーになります。
