月を変えると日付と曜日が変わる便利な万年カレンダー
2013EXCEL関数技BEST 63回 DATE関数を使いこなす
指定月を変えると日付と曜日が変わる便利な万年カレンダーをつくる
月ごとの予定表を作るときに、月によって日数が違うために、月末の日付だけは、手動で調整しなければいけません。
今回は、万年カレンダーで、1月なら31日分表示、2月なら28日表示、3月なら31日というように最後の日付を調整しないで自動で表示、非表示を切り替えるカレンダーを作成します。
何が便利かといえば、一度好きな使いやすいデザインで自分用の万年カレンダーを作成してしまえば、今後ずっとカレンダーを作り直す必要がないということです。
今回のポイントは、DATE関数で取得した日付のシリアル値から曜日を表示させる方法、また日付の29日から31日の月によって変更しなければならない部分は、IF関数を使って自動で表示させる方法の2つの関数技を使います。
(サンプルファイルは、こちらから 2013関数技63回サンプルデータ)
月末の最後の日付に合わせて自動表示するカレンダー
2014年の11月を表示させました。11月の日数は30日。


2015年のカレンダーが必要なら、年度と月を変えます。


曜日の表示~DATE関数
日付の1~28までは、数値のみの入力です。
曜日には、DATE関数をつかって、年と月と日から、日付のシリアル値を作成しています。

曜日には、DATE関数をつかって、年と月と日から、日付のシリアル値を作成しています。

日付のシリアル値を曜日で表示するには、セルの書式設定から設定してやります。
曜日を表示するには、ユーザー設定でaaaと指定してやります。

曜日を表示するには、ユーザー設定でaaaと指定してやります。

29日~31日の表示と非表示の切り替えはIF関数
日付の29日~31日の部分には数式が入っていて、
その月の日数と合っていれば表示し、あってなければ空白にするという設定になっています。セルA31に入力された数式は、
その月の日数と合っていれば表示し、あってなければ空白にするという設定になっています。セルA31に入力された数式は、
=IF(DAY(DATE($B$1,$D$1,29))=29,29,"")セルA32に入力された数式は、
もし、DATE関数で取得した日付が29と等しければ、29と表示、 そうでなければ空白
=IF(DAY(DATE($B$1,$D$1,30))=30,30,"")セルA33に入力された数式は、
=IF(DAY(DATE($B$1,$D$1,31))=31,31,"")

29日~31日の曜日の部分の式は、IF関数を使います。
もし(IF)、セルA31が空白なら日付のセルも空白にする、
空白でないなら、DATE関数で日付のシリアル値を取得、
という意味です。

もし(IF)、セルA31が空白なら日付のセルも空白にする、
空白でないなら、DATE関数で日付のシリアル値を取得、
という意味です。
=IF(A31="","",DATE($B$1,$D$1,A31))

今日の講義は以上です。お疲れ様でした。