EXCELでカレンダーを作る場合や、日程に関わる資料の中で補助的にカレンダーを表示したい事もあるかと思います。
ここで面倒なのが、何年何月の1日は「何曜日?」を調べて、1日を決まった「曜日位置」に毎回セットするという手作業が発生してしまうところです。
そこで「年」「月」を入力すると、日曜始まり等「曜日位置」があらかじめ決まったカレンダーの枠に日付を表示するためのテクニックをご紹介いたします。
↓ 簡単動画からご覧ください。
1日をカレンダーの曜日位置へ表示する
最初の一週間が問題
カレンダーづくりで頭を抱える「最初の一週間」の作り方に絞って解説いたします。
「年」「月」を入力すると、最初の一週間の日付が自動で表示されるようにします。
WEEKDAY関数
WEEKDAY(日付)
WEEKDAY(日付)は、エクセルの日付(シリアル値)から曜日番号(日曜=1…土曜=7)を取り出す関数です。
2020年12月1日は火曜日ですから、WEEKDAY(“2020/12/”)=3 となります。
DATE関数
DATE(年,月,日)
DATE(年,月,日) は「年」「月」「日」をバラバラの数値で指定するとエクセルの日付(シリアル値)へ変換できる関数です。
①カレンダーの最初のセル=「日曜日」へ数式を設定します。
② =DATE(C1,E1,1) で指定した年月の「1日」の日付を取得します。
③ WEEKDAY(DATE(C1,E1,1)) 取得した日付の曜日番号を取得します。
式=DATE(C1,E1,1)-WEEKDAY(DATE(C1,E1,1))+1
DATE(C1,E1,1)-WEEKDAY(DATE(C1,E1,1))は先週の土曜日の日付を指しているため+1 で調整します。
月曜以降は 前日+1 で「最初の一週間」が表示できました。
表示形式
「セルの書式設定」「表示形式」「ユーザー定義」で d とすれば「日付」だけを表示します。
「最初の一週間」が完成しました。2週目以降は足し算でカレンダーは完成します。