いまさら聞けないExcelの使い方講座
【Excel】毎月の更新に手作業不要! 予定表は土日・祝日・末日対応でも自動更新
2023年11月29日 06:55
土日祝日は色を付けて、末日も整えたい!
エクセルでスケジュール表を作ることがありますよね。以下のような表を作成することが多いのではないでしょうか。手書き入力用として月ごとに印刷したりすることもありますね。
このようはスケジュール表を作る場合、先頭のセルに「2024/1/1」のような日付を入力して、オートフィルでコピー、土日祝日に1行ずつ色を付ける……といった作業は不要です。土日祝日の“色付け”も“末日の制御”も[条件付き書式]を使えば、すべて自動化できます。
また、月初の日付を入力する手間も省略できます。「年」と「月」だけ指定すれば、一瞬で更新できるスケジュール表を作ってみましょう。
「年」「月」「日」の表示形式を整える
「年」「月」「日」を入力するセルには「表示形式」を設定しておきましょう。まず、「2024」や「1」と入力するだけで、「2004年」「1月」と表示できるようにします。
続けて「2024/1/1」を「1月1日(月)」と表示させてみましょう。[Ctrl]+[1]キーを押して[セルの書式設定]ダイアログボックスを表示する操作は同じです。「1月1日(月)」のように表示するには「m"月"d"日"(aaa)」と指定します。
更新可能な日付の仕掛けを作る
日付をいきなりオートフィルしてはいけません。自動化するために「=A3+1」のような数式を入力します。一度だけオートフィルが必要です。「31日」分までコピーしてください。
続けて先頭の日付「1月1日(月)」を「=DATE(A1,B1,1)」という数式に書き換えます。DATE(デイト)関数は「年」「月」「日」の数値から、日付に変換するための関数です。セルA1の「2024」とセルB1の「1」を参照して、「1日」を表す「1」を3つめの引数に指定することで、「2024/1/1」という日付が表現されます。
セルの表示形式を変更してあるため、変更前と変わらずに「1月1日(月)」と表示されますが、セルA1の「年」とセルB1の「月」を変更することで、スケジュール表の日付が自動的に切り替わるようになります。
土日の行に色を付ける
[条件付き書式]を利用して、土日の行に色を付けます。日付に対応する数値を返すWEEKDAY(ウィークデイ)関数を利用して土日を判定します。「1」が日曜日、「7」が土曜日を表すことを利用します。
祝日の行に色を付ける
祝日の行に色を付けるには、COUNTIF(カウント・イフ)関数を利用します。[新しい書式ルール]ダイアログボックスに入力する「=COUNTIF($E$3:$E$23,$A3)=1」という数式は、セルE3~E23の中からセルA3の値を数える処理になります。一致する日付があれば、結果は「1」となり、「=1」で日付の有無を判定できます。
なお、祝日リストは内閣府のWebページに掲載されています。
末日を非表示にする
2,4,6,9,11月は、31日までありませんよね。オートフィルで数式をコピーしているため、「3月1日(金)」「3月2日(土)」と翌月の日付が表示されています。
翌月の日付は『月初の日付の「月」と一致するかどうか』という条件を利用して、非表示にすることが可能です。MONTH(マンス)関数を使います。
MONTH(マンス)関数は、日付から「月」を取り出す関数です。セルA3に入力されている日付を比較して、一致していない場合という数式「=MONTH($A$3)<>MONTH($A3)」を入力します。この条件を満たす場合に「塗りつぶしなし」「白文字」と書式を変更すれば、日付が隠れて見えるようになるわけです。
[条件付き書式]を活用しよう
[条件付き書式]では日付に関する関数がよく利用されます。ここで紹介した条件式は定番の使い方といってもいいでしょう。失敗しても問題の少ない個人用のスケジュール表で練習してみるのはいかがでしょうか。