Excelの「カレンダー」上級テク、始まる曜日を選択
実例で学ぶ! Excel関数・数式講座「万年カレンダー」(2)
ビジネススキルカレンダーの週は、通常、日曜日から始まるが、仕事などの事情で、それ以外の曜日から始まったほうが便利な場合もあるだろう。ここでは、前回の記事で完成したカレンダーをさらに改良し、週の始まりを好きな曜日に切り替えられるようにしてみよう(図1)。曜日の行の左端のA4セルで曜日を選ぶと、カレンダー全体が、その曜日から週が始まる表示に変更される。

図1 カレンダーにさらに手を加え、週の始まりの曜日を、日曜日以外にも変更できるようにしよう。A4セルでリストから曜日を選ぶと、自動的に右側の各曜日も変化する。そして、曜日の並び方が変わっても、常にその曜日の日が表示されるように数式を修正する
なお、今回は土・日の列が固定ではないため、すべてのセルの文字色を黒に戻した状態から作業を開始する。
(1)Excelで「万年カレンダー」、年月指定で日を自動表示
(2)今回
同連載はほかに「成績表」「時刻・時間計算」「顧客情報表」「商品注文の受付コード」「販売記録」があります。
曜日の並びを数式で自動表示、開始曜日から基準日を決定
A4セルには、G2セルと同様に「データの入力規則」の「リスト」を設定し、「日」〜「土」の曜日をリストから選択可能にする(図2)。

図2 カレンダーのすべての文字色を黒にして、A4セルの曜日をリストから選べるようにした。前回の図3、図4と同様に、「データの入力規則」の「リスト」の設定で、「元の値」欄に「日」〜「土」の各曜日を「,」で区切って指定すればよい
B4〜G4セルには、左のセルの曜日に応じて、その次の曜日を表す「月」〜「日」を返す数式を、「Ctrl」+「Enter」キーを押して一括入力する(図3)。この数式では、FIND(ファインド)関数を使って、左のセルの曜日の順番を表す数値を求め、MID(ミッド)関数でその次の曜日を表す文字を取り出している。

図3 左のセルの曜日に応じて、その次の曜日を自動表示する数式をB4〜G4セルに一括入力する(1〜3)。この数式では、日〜土の各曜日を表す文字列での左セルの曜日の位置をFIND関数で調べ、曜日を1つずらした文字列から同じ位置の文字をMID関数で取り出している
A4セルで選択した曜日に応じて、A5セルの数式で求める基準の日付も変化させる。週の始まりを日曜日に固定していた場合は、当月1日以前の最初の日曜日を求めればよかった。今回は始まりの曜日が変動するため、当月1日以前で最初の、選択した曜日の日付を求める必要がある。
WEEKDAY関数の引数「種類」に11を指定した場合は月〜日を、12を指定した場合は火〜月を、それぞれ1〜7の数値で返す。同様にこの引数には17までの値を指定でき、それぞれ始まりの曜日がずれる。FIND関数で各曜日の順番を表す数値を求め、10を加えてこの引数「種類」に指定することで、目的の日付が求められる(図4)。

図4 A 5セルの数式を、対象月の1日以前で、A4セルで指定した曜日から始まる日付の連続データを求める式に修正しよう。これには、WEEKDAY関数の引数「種類」に、曜日に応じて11〜17を指定すればよい。曜日の判定にはFIND関数を利用する(以前のバージョンのExcelでは、前回の図20までの状態のシートをベースとし、A5セルの数式のWEEKDAY関数の引数部分を同様に修正する)
土・日の文字色を自動設定、ルールの適用順を変更
次に、土曜日と日曜日の列の文字色を、自動的に変化させよう。これにも「条件付き書式」の「新しいルール」を使用し、各列の4行目のセルの値が「土」または「日」かどうかを数式で判定。その結果が真の場合の書式として、フォントの色の「青」または「赤」を設定すればよい(図5〜図7)。これらの設定の数式では、いずれも判定対象のセルを「A$4」のような複合参照で指定している。設定対象のセル範囲の中での基準はA4セルなので、このセル参照は、各セルと同じ列で、4行目にあるセルを表している。

図5 曜日の変更に応じて、4行目のセルに表示された曜日が「日」の列の文字色は赤で、「土」の列の文字色は青で表示されるようにしよう。A4〜G10セルを選択し、「ホーム」タブの「条件付き書式」をクリックして、「新しいルール」を選ぶ(1〜3)

図6 「新しい書式ルール」画面で、ルールの種類として「数式を使用して⋯」を選ぶ(1)。「A$4」という複合参照で、各列の4行目のセルが「日」かどうかを調べる数式を指定(2)。変化させる書式としてフォントの色の「赤」を指定し、設定を完了する(3、4)

図7 同じセル範囲を対象に、同様の手順で「新しい書式ルール」画面を表示。「数式を指定して⋯」を選び、各列の4行目のセルが「土」かどうかを調べる数式を指定(1、2 )。変化させる書式としてフォントの色の「青」を指定し、設定を完了する(3、4)
この設定以前に、登録した休日と、前月や翌月の日の文字色を変更する条件付き書式のルールを設定したが、この新しいルールによって、休日やほかの月の日であっても、土曜日は青、日曜日は赤で表示されてしまう。これを解消するには、「条件付き書式」の「ルールの管理」を実行する(図8)。「条件付き書式ルールの管理」画面で、先に設定した2つのルールを上側に移動させれば、適用順が変更される(図9)。

図8 図6と図7の設定を追加したことで、対象月以外の日曜日と土曜日の数字も、グレーではなく赤や青で表示されてしまう。休日の数字も、土曜日なら青になる。これを解消するには、ルールの適用順を変更すればよい。「ホーム」タブの「条件付き書式」から「ルールの管理」を選ぶ(1、2)

図9 「条件付き書式ルールの管理」画面で、上から3番目の対象月かどうかを判定するルールを選択(1)。上向きの矢印ボタンを2回クリックしてこのルールを一番上に移動させる(2、3)。同様に休日を赤字にするルールを上から2番目に移動し、「OK」をクリックする(4、5)
(ライター 土屋和人)
[日経PC21 2023年3月号掲載記事を再構成]