意外と面倒なカレンダー作成
一つ一つ手打ち
仕事をしていると、Excelでのカレンダー作成が、定期的に発生する意外と面倒な作業です。
一行もしくは一列での作成なら、日付を入れて「=A1+1」と入れていけば難なく作れますが、曜日区切りのカレンダーを作るとなると、意外と手間です。
そもそも一番直近の日曜日を把握し、そこから+1しながら、下の行に関しては+7して…、と、作るとなるとそれなりに手数がかかります。
SEQUENCEを使う
そこで使える関数がSEQUENCEという関数です。
この関数は、行数と列数、開始位置と増分を指定すると、指定した行数×列数の配列を作ることができます。
例えば、「=SEQUENCE(3,4,1,1)」と入れると、3×4の1から12の配列を作ることができます。
これを応用すれば、列数7で配列を作れば、簡単にカレンダーが作れます。
直近の日曜日は?
このとき、開始位置は直近の日曜日に指定する必要があります。
そのために活用するのが、Weekday関数です。この関数は、該当の曜日が月曜なら1、火曜なら2と、曜日ごとに数字を割り振ることができます。
なので、直近の日曜日は、「=today()-weekday(today())」と入れると返却することができます。
実装してみる!
実際の関数
以上を踏まえると、次のように入れると、簡単にカレンダーが作れます。
=SEQUENCE(5,7,TODAY()-WEEKDAY(TODAY()))
対象月のみ表示する
なお、当月分のみ表示したい場合は少々長いですが、次のように入れると表示可能です。
=IF(MONTH(SEQUENCE(5,7,TODAY()-WEEKDAY(TODAY())))=MONTH(TODAY()),SEQUENCE(5,7,TODAY()-WEEKDAY(TODAY())),””)
コメント