エクセルでカレンダーを作る DATE関数を使いこなす

万年カレンダーをつくる~月を変えると日付と曜日が変わる

月ごとの予定表を作るときに、月によって日数が違うために、月末の日付だけは、手動で調整しなければいけません。
今回は、万年カレンダーで、1月なら31日分表示、2月なら28日表示、3月なら31日というように最後の日付を調整しないで自動で表示、非表示を切り替えるカレンダーを作成します。
(サンプルファイルは、こちらから 2013関数技63回サンプルデータ

月末の最後の日付に合わせて自動表示するカレンダー

2014年の11月を表示させました。11月の日数は30日。
11月のカレンダー
2015年のカレンダーが必要なら、年度と月を変えます。
何が便利かといえば、一度好きな使いやすいデザインで自分用の万年カレンダーを作成してしまえば、今後ずっとカレンダーを作り直す必要がないということです。
2月のカレンダー
今回のポイントは、DATE関数で取得した日付のシリアル値から曜日を表示させる方法、また日付の29日から31日の月によって変更しなければならない部分は、IF関数を使って自動で表示させる方法の2つの関数技を使います。

カレンダーの説明、曜日の表示はDATE関数

日付の1~28までは、数値のみの入力です。
曜日には、DATE関数をつかって、年と月と日から、日付のシリアル値を作成しています。
DATE関数
日付のシリアル値を曜日で表示するには、セルの書式設定から設定してやります。
曜日を表示するには、ユーザー設定でaaaと指定してやります。
曜日の設定
スポンサーリンク
スポンサーリンク

29日~31日の表示と非表示の切り替えはIF関数

日付の29日~31日の部分には数式が入っていて、
その月の日数と合っていれば表示し、あってなければ空白にするという設定になっています。セルA31に入力された数式は、
=IF(DAY(DATE($B$1,$D$1,29))=29,29,"")
もし、DATE関数で取得した日付が29と等しければ、29と表示、 そうでなければ空白
セルA32に入力された数式は、
=IF(DAY(DATE($B$1,$D$1,30))=30,30,"")
セルA33に入力された数式は、
=IF(DAY(DATE($B$1,$D$1,31))=31,31,"")
IF関数とDAY関数
29日~31日の曜日の部分の式は、IF関数を使います。
もし(IF)、セルA31が空白なら日付のセルも空白にする、
空白でないなら、DATE関数で日付のシリアル値を取得、
という意味です。
=IF(A31="","",DATE($B$1,$D$1,A31))
曜日の表示と非表示
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク