いまさら聞けないExcelの使い方講座

【Excel】毎月使い回す勤怠表の日付更新が面倒!エクセルで1カ所入力だけで1カ月分更新できるカレンダー作成テク

予定表や勤怠管理表の日付を毎月更新するのが面倒!

 Excelのブックで、業務の予定表や勤怠管理表を作成している職場は少なくないと思います。このようなブックは、各月や週のはじめに前の月や週のブックをコピーし、日付を修正して使い回すことが多いのではないでしょうか。

 これまで、本連載では予定表や勤怠管理表の作成に便利なテクニックをたくさん解説してきました。日付をオートフィルで入力する方法もその1つで、1か月などの連続した日付もドラッグ操作で簡単に入力できます。でも、毎月やるとなると、正直なところ、その操作さえもだんだん面倒になってくるのではないでしょうか。

 そこで、今回は毎月使い回すブックの日付の更新をラクにするテクニックを解説します。操作を極力減らし、少し修正するだけで日付を簡単に更新できるようになりますよ。

DATE関数を活用して勤怠表の日付更新を簡単にする

 Excelで作成した勤怠管理表(①)を使って毎日の出退勤時刻などを管理している会社があるとします。現在使われている勤怠管理表では、カレンダー部分に「2020/1/1」のように日付が直接入力されており、月が変わると各社員が手入力で日付欄の日付を修正しています。なお、このブックでは日付の部分にユーザー設定の表示形式が設定されており、「2020/1/1」と入力すると「1日(水)」と表示されるようになっています。

 ここでは、この勤怠管理表の日付の更新がもっとラクになるよう、年度や月を入力するだけで、カレンダーの日付が自動的に更新されるようにします。毎月の日付が自動で更新されるカレンダーを作成するには、毎月の「1日」の日付の入力を工夫します。具体的には、DATE関数を使って年度と月のセルの数値を参照し、日付が表示されるようにします。DATE関数は、次のような書式で使います。

 「年」「月」「日」の各引数には、セル番号を指定します。直接数値を入力することもできます。毎月最初の日付は、「年」と「月」は変わっても「日」は必ず「1」です。したがって、「日」は直接「1」を指定します。一方、「年」と「月」は、直接数値を入力するのではなく、それぞれ別のセルに入力した値を参照させます。このようにすることで、使い回しが楽になります。詳しくは後ほど説明します。

 では、先ほどの勤怠管理表の日付の更新が簡単になるよう、修正していきましょう。まず、DATE関数で「年」と「月」を指定しやすくするため、別の場所に「年」と「月」の表示欄を作成します。「2020年1月」という内容を、1つのセルにまとめて入力するのではなく、セルB1に「2020」(②)、セルC1に「年」、セルD1に「1」(③)、セルE1に「月」と分けて入力するようにします。これらの情報を別々のセルに入力しておくことで、翌年や翌月分の勤怠管理表を作成する際、セルB1またはセルD1の値を変更するだけで勤怠管理表の日付データが更新されるようになるのです。

 1日の日付を、DATE関数を使って書き直してみます。1日の日付は必ずセルA5に入力されるので、セルA5に数式を入力すればOKです。「年」として参照するセルは常にセルB1、「月」として参照するセルは常にセルD1、「日」は毎月1日の場合必ず「1」なので、セルA5に入力する数式は「=DATE($B$1,$D$1,1)」(④)となります。数式を入力したら、[Enter]キーを押します。

 セルA5に2020年1月1日の日付が、「1日(水)」(⑤)と正しく表示されました。2日の日付は、先ほど入力したセルA5の1日後の日付なので、セルA6には「=A5+1」(⑥)と入力し、[Enter]キーを押します。

 3日以降の日付は、2日の日付をオートフィルでコピーして入力します。先ほど2日の日付を入力したセルA6をクリックして選択した状態で、マウスポインターをセルA6の右下に合わせると、マウスポインターが十字の形に変わります(⑦)。ここで選択するセルはセルA6だけにします。セルA5とA6の両方を選択した状態からオートフィルを行うと、想定している結果が得られません。

 セルA35までドラッグ(⑧)すると、日付が「31日(金)」まで自動で入力されます。

 これで、日付を入力するすべてのセルに数式が入力されました。では、セルD1に入力する「月」の数値が変わった時、自動でカレンダーの日付が更新されるかどうか確認してみましょう。セルD1に先ほどとは別の数値(ここでは「2」)(⑨)を入力します。

 [Enter]キーを押すと、セル範囲A5:A35に入力されている日付が変わります(⑩)。DATE関数の引数となるセルD1の値が変わり、日付が再計算されるためです。

 2020年2月は29日までなので、セルA34とA35には3月の日付が表示されてしまいます。不要な日付を削除(⑪)し、シート名を修正(⑫)したら、2月分の勤怠管理表の完成です。

 このように、DATE関数と数式を使って日付を入力しておけば、セルB1やセルD1の数値を修正するだけで日付も自動で修正されるようになります。もちろん、コピーしたブックを使っても結果は同じです。これなら、日付をオートフィルでコピーする操作が不要になるので、毎月新しいブックを作成するのにかかる時間を大幅に削減できますよ。

関数と数式を活用すればカレンダーの更新がラクになる!

 今回は、DATE関数と数式を使って、勤怠管理表の日付の更新をラクにする方法を解説しました。関数や数式を使うことに抵抗がある人もいるかもしれません。確かに、正しく動作するブックが作成されるまでは少し時間がかかるかもしれませんが、ブックが一度完成すれば、以降はそれをコピーして使い回せるので、長い目で見ると業務全体はぐっと効率アップするはずです。

 数値を入力しただけで日付が自動で更新されるカレンダーが正しく動作しているのを見ると、達成感がありますよ。ぜひ、チャレンジしてみてくださいね。

今月のExcelTips