• 公開日:

エクセルで当番表をローテーションさせる方法

この記事では、エクセルを使用してスムーズに当番表を作成し、ローテーションさせる方法をご紹介します。

当番制のスケジュールを管理する際には、自動的にローテーションさせることで、簡単に適切な人員配置が可能となります。

エクセルの機能を活用して、効率的に当番表を作成し、スムーズな運用を実現しましょう。

エクセルで当番表をローテーションさせる方法

エクセルで当番表をローテーションさせる方法をご紹介します。

簡単な当番表

簡単な当番表の作成方法は、以下のとおりです。

月曜の当番を入力する

月曜日の当番を入力します。

塗りつぶしをした

上図のように、各セルを当番ごとに色付けすると分かりやすくなります。

コピー&ペーストをする

①B列のB2~B5までを「Ctrl」+「C」でコピーします。

C3セルを選択し、「Ctrl」+「V」で貼り付けます。

コピー&ペーストをする

C列に貼り付けられました。

①C列のC3~C5までを「Ctrl」+「C」でコピーします。

D4セルを選択し、「Ctrl」+「V」で貼り付けます。

コピー&ペーストをする

同様にF列までコピーするセル1つずつを減らしていき、ペーストします。

続いて、①B6セルを「Ctrl」+「C」でコピーします。

C2セルを選択し、「Ctrl」+「V」で貼り付けます。

当番表を完成させることができた

同様にF列までコピーするセルを1ずつ増やしていき、F列までペーストします。

日替わりで複数の場所をローテーションする当番表を作成することができました。

1週間ごとにローテーションする当番表

1週間ごとにローションする当番表の作成方法は、以下のとおりです。

日付を入力する

上図の氏名の横に、1週間ごとにローテーションで「当番」と表示させる場合を例にご説明します。

任意のセル(例:E1)に基準日(例:6月17日)を入力します。

ここで入力する日付を基準日とするため、月曜日の日付を入れれば月曜日更新、火曜日の日付を入れれば火曜日更新となります。

関数を入力する

B2セルに「=IF(MOD(QUOTIENT(DATEDIF($E$1,TODAY(),"d"),7),COUNTA(A2:A8))=ROW()-2,"当番","")」と入力し、Enterを押します

数式については、「1週間ごとにローテーションする当番表の数式について」セクションで詳しくご説明します。

オートフィル操作を行う

関数を入力したセル(例:B2)を選択します。

セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

当番を表示させることができた

B列に当番をローテーションで表示させる設定が完了しました。

文字列を選択する

一目で当番を分かりやすくするため、「当番」と表示されるセルに色付けをします。

B2:B8をドラッグして選択します。

「ホーム」タブ、「条件付き書式」の順に選択します。

「セルの強調表示ルール」、「文字列」の順に選択します。

OKボタンを押す

「文字列」ダイアログボックスが表示されます。

①入力フォームに「当番」と入力し、②「書式」で任意の書式(例:明るい赤の背景」を選択します。

「OK」ボタンを押します。

当番に色付けすることができた

「当番」のセルに色付けすることができました。

翌週の更新曜日になると当番がローテーションになる

翌週月曜日になると、上図にように「当番」が自動でローテーションします。

1週間ごとにローテーションする当番表の数式について

数式について説明する

1週間ごとにローテーションする当番表」セクションで使用した数式「=IF(MOD(QUOTIENT(DATEDIF($E$1,TODAY(),"d"),7),COUNTA(A2:A8))=ROW()-2,"当番","")」についてご説明します。

「$E$1」の日から今日までの経過週数を当番の人数(A2:A8)で割ります。そのあまりの「+2行目(-2)」(当番と表示させるセルが「B2」セルからのため)に、「当番」と表示するという意味になります。

初週は経過週数が0なので、B2セルの人が当番、次の週は経過週数が1なのでB3セルの人が当番となります。

MOD関数/QUOTIENT関数は、いずれも商の部分を求める関数です。

例えば、割り算の計算で割り切れない場合は小数点が出力されてしまいます。余りは無視して何組できるのか、物理的に最適な振り分けを組みたい、というときに使える関数です。

MOD関数とQUOTIENT関数の違いは、QUOTIENT関数は割り算の結果の整数部を返します。

ExcelのCOUNTA関数の使い方|空白ではないセルの個数を返す

ExcelのROW関数の使い方|セルの行番号を求める

ExcelのMOD関数の使い方|割り算の余りを求める

日替わりでローテーションさせる

日替わりで当番をローテーションさせる方法は、以下のとおりです。

関数を入力する

B2セルに「=IF(MOD(DATEDIF($E$1,TODAY(),"d"),COUNTA(A2:A8))=ROW()-2,"当番","")」と入力し、Enterを押します。

日替わりの場合は、÷7をする必要がないので「QUOTIENT関数」の数式は省きます。

オートフィル操作を行う

関数を入力したセル(例:B2)を選択します。

セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

日替わりでローテーションさせる設定ができた

B列に当番をローテーションで表示させる設定が完了しました。

月ごとにローテーションさせる

月ごとに当番をローテーションさせる方法は、以下のとおりです。

関数を入力する

B2セルに「=IF(MOD(DATEDIF($E$1,TODAY(),"m"),COUNTA(A2:A8))=ROW()-2,"当番","")」と入力し、Enterを押します。

月ごとにのローテーションのため、「"m"」で月の単位を指定しています。

月替わりでローテーションさせる設定ができた

B列に当番をローテーションで表示させる設定が完了しました。