当番表をエクセルで作ろうとして、日付を1日ずつ打ち込む作業で手が止まった経験は、町内会でもPTAでも部活でも共通しています。作り方の記事は数多くありますが、実際に困るのは作る手前ではなく、作ったあとに配って直して配り直す繰り返しのほうです。この記事では、エクセルで当番表を組む具体的な式と設定を示したうえで、配る段階で必ず起きる問題と、その先の判断材料までを順に並べます。
エクセルの当番表が、いまどこでつまずいているか
当番表という言葉で検索される表は、大きく2種類に分かれます。ごみ出し・清掃・鍵の開け閉めのように日付に人を割り当てるもの、そして受付・見守り・当日の係のように行事の中で持ち場を割り当てるものです。前者は日付の列が主役になり、後者は名簿の列が主役になります。同じファイルに両方を詰め込むと、どちらの都合でも崩れるため、最初に分けておくだけで作り直しの回数が減ります。
エクセルが選ばれ続けている理由は単純です。役員が代わっても、パソコンに最初から入っている道具なら引き継げると考えられているからです。新しいIDとパスワードを増やさずに済むことは、年配の会員がいる会では決定的な条件になります。一方で、エクセルで作った当番表の多くは、作った人以外が触れないまま1年を過ごします。数式の入ったセルを消してしまうのが怖いという理由で、役員が代わるタイミングでまるごと作り直されることも珍しくありません。
つまずきの正体は、関数の知識ではなく更新の権限にあります。手で日付を打ち込んだ表は誰でも直せますが、間違いが混ざります。関数で組んだ表は間違いが減りますが、直せる人が1人に絞られます。1人しか直せない表は、その人が忙しい月に止まります。この記事の後半で扱う「配るところ」の話は、この二択をどう外すかという話です。
Excelで当番表を作るたびに、「土日祝を1日ずつ消すのが面倒」「担当者を順番に割り当てたい」「毎月メンバーの回数が偏っていないか確認するのが大変」と感じていませんか。 出典: skillstack-lab.com
面倒だと感じる3つは、いずれも関数で片付きます。順番に見ていきます。
作りはじめる前に決めておく3つのこと
関数を書く前に決めておくことが3つあります。ここを飛ばして式から入ると、あとで全部書き直しになります。
1つ目は、当番の単位です。1日ごとか、1週間ごとか、月の第何週かのどれかを選びます。ごみ出しは日単位、清掃は週単位、役員の日直は月単位というように、集まりによって単位は違います。単位が決まると、日付の列を何行用意するかが自動的に決まります。1年分を日単位で並べると365行になり、週単位なら52行で足ります。行数が少ないほど印刷しやすく、直しやすくなります。
2つ目は、名簿の保存先です。当番表と同じシートに名前を並べると、人の出入りがあるたびに表の形が動きます。名簿は別のシートに作り、当番表の側からは参照するだけにします。転入と転出が年に何度もある集まりでは、名簿シートに「在籍」「休会」の欄を作り、休会の人を当番の候補から外せるようにしておくと、抜け番の扱いで揉めません。
3つ目は、誰が直すかです。入力する人を1人に決めるのか、班長がそれぞれの班の欄を直すのか、ここを決めずに配ると、配ったあとで版が分かれます。複数の人が直す形にするなら、エクセルのファイルを添付して送る方法では成り立ちません。この点はあとの節で詳しく扱います。
決めた内容は、当番表のファイルの中に短く書き残しておきます。1枚目のシートに「この表の単位」「名簿の場所」「直す人」「直したら誰に知らせるか」の4行を書いておくだけで、引き継ぎのときに読む人の時間が数時間変わります。引き継ぎで渡すものが1つで済むかどうかで、その仕組みが続くかが決まります。
日付を自動で並べる:WORKDAY と NETWORKDAYS
日付の自動生成には、稼働日を数える関数を使います。土日を外したい、祝日を外したい、あるいは平日ではなく日曜だけを当番の日にしたい、といった要望はすべてここで吸収できます。
まず土日と祝日を外した日付を並べます。祝日の一覧を別のシート(ここでは「祝日」シートのA列)に縦に並べておき、当番表の最初の日付のセルに開始日を手で入れます。2行目以降には次の式を入れます。
=WORKDAY(上のセル, 1, 祝日!$A$2:$A$30)
WORKDAY は、開始日から指定した稼働日数だけ進んだ日付を返します。3番目の欄に祝日の範囲を渡すと、その日付も飛ばしてくれます。祝日シートには国民の祝日だけでなく、その集まり独自の休みも足しておきます。お盆の清掃休止、学校行事と重なる日、地区の祭礼など、カレンダーに載っていない休みこそ抜けやすい部分です。
土日以外を休みにしたい場合は WORKDAY.INTL を使います。週末に当たる曜日を、数値か7文字の文字列で指定できます。数値なら1が土曜と日曜、11が日曜だけ、17が土曜だけを表します。文字列なら月曜から日曜までの7文字を0と1で書き、1を書いた曜日が休みになります。日曜の朝だけ当番がある清掃なら、日曜以外を休みとして扱う指定にすれば、日曜の日付だけが並びます。
その月に当番が何日あるかを数えるには NETWORKDAYS を使います。
=NETWORKDAYS(月初のセル, 月末のセル, 祝日!$A$2:$A$30)
この数が名簿の人数で割り切れるかどうかで、その月の偏りが先に分かります。人数8人に対して当番日が21日なら、3人だけ3回になります。割り切れないことが分かった時点で、月の開始位置をずらすか、余った日を持ち回りにするかを決められます。配ったあとで指摘されるのと、配る前に決めておくのとでは、受け取られ方がまったく違います。
担当者を順番に回す:MOD と INDEX
日付が並んだら、その隣に担当者を並べます。手で名前を貼り付けていくと、人が抜けたときに全部ずれます。順番に回す仕組みは MOD と INDEX の組み合わせで作ります。
名簿シートのA2からA9に8人の名前が入っているとします。当番表の担当者の列(2行目から)には次の式を入れます。
=INDEX(名簿!$A$2:$A$9, MOD(ROW()-2, 8)+1)
ROW() はそのセルの行番号を返します。2行目から始まるので2を引いて0からの連番にし、MOD で人数の8で割った余りを取ります。余りは0から7になるので、1を足して INDEX に渡すと、1人目から8人目までが順に繰り返されます。人数を変えたときに式を全部直すのが面倒なら、人数のところを COUNTA(名簿!$A$2:$A$100) に置き換えます。名簿に名前を足しただけで、担当の回り方が自動的に変わります。
毎月同じ人から始まってしまうのを避けたい場合は、開始位置をずらします。MOD の中に、その月の通し番号を足します。
=INDEX(名簿!$A$2:$A$9, MOD(ROW()-2+開始番号, 8)+1)
開始番号のセルに1を入れれば2人目から、2を入れれば3人目から始まります。4月は0、5月は1のように月ごとに1つずつ増やしていけば、年間を通した偏りがなくなります。月をまたぐ表を1枚で作るなら、開始番号のセルを月ごとに用意し、その月の行はその月の開始番号を見るようにします。
2人組で当番に入る集まりでは、名簿を2列にして INDEX を2つ並べます。同じ人同士が毎回組になることを避けるなら、2人目の側だけ開始番号を別の数にします。片方は0から、もう片方は3から始めるといった形です。組み合わせが一巡するまでの回数は、人数と差の関係で決まるため、実際に並べた表を目で追って確かめるのが一番確実です。
回数の偏りを COUNTIF で確かめる
割り当てたあとに必ず聞かれるのが「うちは何回か」です。この問いに即答できる表かどうかで、その年の運営の手間が変わります。名簿シートの名前の隣に、当番表を数える式を1つ入れておきます。
=COUNTIF(当番表!$C$2:$C$400, A2)
名簿の全員分に同じ式を入れれば、回数の一覧がその場で出ます。最大と最小の差が1回以内に収まっていれば、説明できる表です。差が2回以上ある場合は、開始番号を調整するか、余りの日を別枠にします。
回数だけでなく、曜日の偏りも見ておきます。土曜の当番ばかり当たる人がいると、回数が同じでも不満が残ります。当番表に曜日の列を作り、TEXT(日付のセル,"aaa") で曜日を出しておけば、COUNTIFS で「この人の土曜の回数」を数えられます。
=COUNTIFS(当番表!$C$2:$C$400, A2, 当番表!$B$2:$B$400, "土")
配る前にこの2つの表を見て、明らかな偏りだけを直します。完全に均すことを目指すと作業が終わらなくなるため、「回数の差は1回まで、土日の差は2回まで」のような基準を先に決めておくのが現実的です。基準を決めておけば、指摘があったときに数字で答えられます。
偏りの確認は、割り当てを変えたあとに必ずやり直します。1か所だけ手で入れ替えたつもりが、下の行の式を壊していることがあります。COUNTIF の合計が当番日の総数と一致するかを見れば、抜けと重複をまとめて検出できます。
壊れにくくする5つの設定
関数で組んだ当番表は、触られた瞬間に壊れます。壊れないようにするのではなく、壊れても気づける形にしておきます。
1つ目は、入力する欄と数式の欄を色で分けることです。手で入れるのは開始日・人数・開始番号・祝日の一覧だけにして、そのセルだけ背景色を付けます。色が付いていないセルは触らないという約束が1行あれば、ほとんどの事故は防げます。
2つ目は、シートの保護です。校閲タブからシートの保護を掛け、入力する欄だけロックを外します。パスワードは掛けないほうがよいことが多く、掛けるならファイルの1枚目に保管場所を書き残します。パスワードを知っている人が引き継ぎ前に抜けると、表ごと使えなくなります。
3つ目は、名簿の並び順を固定することです。当番表は名簿の行の順番を見ているため、名簿を五十音順に並べ替えた瞬間に、過去の割り当てが全部入れ替わります。並べ替えたい欲求は必ず出てくるので、名簿シートに「並べ替え禁止」と大きく書き、五十音で見たいときは別シートに並べ替えたコピーを作ります。
4つ目は、印刷の設定を先に済ませることです。配る形が紙なら、印刷範囲・タイトル行の固定・1ページに収める倍率を保存しておきます。毎回この設定をやり直している集まりは、印刷のたびに10分前後を使っています。年に12回配るなら、それだけで2時間になります。
5つ目は、ファイル名に版の番号や日付を入れないことです。当番表_最新.xlsx、当番表_0401修正版.xlsx、当番表_修正版2.xlsx が並んだフォルダは、どれが正しいか分からなくなります。ファイル名は固定し、直した日と直した内容は1枚目のシートに追記します。どれが正しいかを1つに保つ仕組みは、関数よりも効きます。
エクセルの上限と、無料で使える範囲
エクセルの1枚のシートには1,048,576行と16,384列まで入ります。1つのセルには32,767文字まで入り、取り消しは100回までさかのぼれます。当番表でこの上限に当たることはまずありません。制約になるのは表の行数や列数ではなく、開ける人の環境です。
エクセル本体を持っていない人がいる集まりでは、無料で開ける経路を先に用意します。ブラウザで使えるウェブ版のエクセルは無料の個人用アカウントで利用でき、スマートフォンのアプリでも閲覧はできます。Googleスプレッドシートに読み込む形でも開けます。Googleスプレッドシートは1つのファイルに1,000万セルまたは18,278列(列ZZZ)まで入り、エクセルから読み込んだ場合も同じ上限です。ただし読み込みのときにセルの書式や一部の設定が変わることがあるため、配る先で開いた画面を一度確かめておく必要があります。
無料の範囲で運用するなら、配るのは表そのものではなくPDFにするのが確実です。PDFなら相手の環境で崩れず、数式も壊されません。作る側だけがエクセルを持ち、読む側はPDFだけを見る形にすれば、開けない人が出ません。そのかわり、読む側が自分の当番だけを探しにくくなります。1枚のPDFの中から自分の名前を見つける作業は、紙の回覧板と同じ手間です。
エクセルで作ること自体には無理がありません。無理が出るのは、その表を全員に届けて、変更を追いかけてもらう部分です。
無料のテンプレートを使うか、自分で組むか
当番表のテンプレートは無料で配布されているものが多く、探せばすぐに見つかります。ダウンロードして名前を入れ替えるだけで使えるものもあります。それでも自分で組んだほうがよい場面があり、判断の分かれ目は「あとで直すかどうか」です。
テンプレートが向くのは、1回だけ使って捨てる表です。行事の当日の係分担、1回限りの清掃の割り当て、体験教室の受付当番のように、その日限りで終わるものはテンプレートで足ります。名前を入れて印刷し、終わったら捨てる。関数を理解する必要がありません。
テンプレートが向かないのは、毎年使い回す表です。配布されているテンプレートの多くは、作った人の集まりの事情に合わせて作られています。当番の単位が週なのか日なのか、休会の扱いがあるのか、班という単位があるのか。これらが自分の集まりと違うと、直す作業が発生します。人が作った数式を読み解いて直す作業は、白紙から組むより時間がかかることが多く、式の意味が分からないまま直した結果、別の月が崩れることもあります。
判断の目安として、その表を3年以上使う見込みがあるなら、自分で組むほうが合計の手間が少なくなります。自分で組めば、どこを直せばよいかを知っている人が1人はいる状態になります。テンプレートを使う場合も、数式の意味を1枚目のシートに日本語で書き残しておけば、同じ状態に近づけられます。
技能の引き継ぎという観点も外せません。当番表を関数で組める人が役員を離れると、次の年に誰も直せなくなります。この事態を避ける方法は2つあります。1つは、組める人が組み方を書き残すこと。もう1つは、そもそも関数を使わない形に寄せることです。後者を選ぶなら、日付を手で打ち込んで名前を貼り付ける原始的な表のほうが、結果的に長く続きます。関数の巧みさと、続けやすさは別の軸にあります。
円形の当番表と、カレンダー型の当番表
当番表の見た目は、大きく2つの型に分かれます。円を人数分に区切って、真ん中の矢印を週ごとに回していく円形の型と、カレンダーの升目に担当者の名前を入れていくカレンダー型です。どちらもエクセルで作れますが、向いている場面が違います。
円形の型は、担当がぐるぐる回るだけで、日付との対応が要らない場合に向きます。教室の掃除当番、幼稚園の親の係、部室の鍵当番のように「今週はこの人」だけが決まればよい場合です。エクセルで作るなら、円グラフを人数分の同じ数値で作り、データラベルに名前を表示させます。グラフの塗りを薄い色にし、外側の輪郭だけを残すと、貼り出したときに読みやすくなります。真ん中に回す矢印を別に印刷して、画鋲で留める形が定番です。作ったあとに人が増えても、名簿の数値を1行足すだけで区切りが増えるため、直しやすい型でもあります。
弱点は、休んだ人の扱いです。円形の型には「この週は飛ばす」という情報を書く場所がありません。誰かが休むと、次の週から全員が1つずつずれ、円の表示と実際の担当が食い違います。ずれた状態を直す手段がないため、貼り出した表の横に手書きの付箋が増えていきます。
カレンダー型は、日付と担当者が一対一で対応しているため、休みや交代を書き込めます。この記事で扱ってきた関数の組み方は、すべてカレンダー型を前提にしています。弱点は面積です。1か月分を1枚に収めると、升目1つに入る文字が6文字前後に限られ、名字だけしか書けなくなります。同じ名字の会員が複数いる集まりでは、名字だけでは誰か分かりません。名簿シートに表示名の列を作り、重複する名字には下の名前の1文字を足した表示名を入れておくと、升目の中でも区別できます。
見た目を整える作業には、切り上げる基準を先に決めておくのが有効です。罫線の太さや色の濃さを何度も直しはじめると、その作業だけで半日が消えます。貼り出す場所から1メートル離れて名前が読めれば十分だという基準にすれば、そこで手を止められます。
配るところで起きること
当番表は、作った時点では価値がありません。配って、読まれて、当日その人が動いて初めて機能します。配り方は大きく4つに分かれます。
紙で配る方法は、開けない人が出ない点で最強です。弱いのは差し替えです。1人が交代したとき、配った全員の紙が古くなります。回覧板で回すと、最後の家に届くまで数日かかります。
ファイルを添付して送る方法は、送った瞬間に版が分かれます。受け取った人が自分の端末に保存し、次の変更を受け取らなかった場合、その人は古い表を見て当日を迎えます。誰が最新を持っているかを誰も知らない状態になり、当日の朝に電話で確認する作業が発生します。
チャットに画像として流す方法は、届く速さが最大の利点です。ただし、時間がたつと流れて探せなくなります。過去のやりとりを遡って当番表の画像を探す作業は、参加人数が多いグループほど難しくなります。LINEグループとの比較では、連絡が流れる性質と、あとから探せる性質がどこで分かれるのかを整理しています。似た構造は、参加者の入れ替わりが多い場でも起きます。LINEオープンチャットとの比較では、名前を明かさずに参加できる仕組みの利点と、名簿として使えない理由を扱っています。
共有の保存先に保存して、そこを見てもらう方法は、版が1つに保てる点で優れています。弱いのは、見てもらえないことです。変更したことを知らせる手段が別に必要になり、結局チャットで「更新しました」と流すことになります。この二段構えが、とりまとめる人の手数を増やします。
エクセルが向く集まりと、向かない集まり
判断の軸は3つです。人数、変更の頻度、そして直す人の数です。
エクセルが向くのは、人数が20人以下で、年に1回だけ作って途中の変更がほとんどなく、直す人が1人に固定されている集まりです。年度初めに1枚作って印刷し、掲示板に貼って終わるなら、これ以上ふさわしい道具はありません。班の清掃当番、月ごとの鍵当番、教室の掃除当番はここに入ります。
向かないのは、当日の交代が頻繁に起きる集まりです。仕事や体調で入れ替わるたびに表を直し、直したことを全員に知らせる必要があるなら、表計算ソフトの担当範囲を超えています。部活の送迎当番、行事の受付シフト、子どもの見守り当番はこちらです。交代の連絡がチャットに流れ、表の更新が追いつかず、当日に誰も来ないという事故が起きます。
もう1つ向かないのは、直す人を増やしたい集まりです。班長がそれぞれの班の欄を直せるようにしたいという要望は自然ですが、エクセルのファイルを複数人で同時に直すと、版の食い違いが起きます。クラウドに保存して同時編集する形にすれば解決しますが、そのためには全員にアカウントが必要になり、最初に避けたはずの「新しいIDとパスワードを増やさない」という条件が崩れます。
町内会での使われかたでは、班ごとの当番と全体の連絡が分かれている運営の形を、PTAでの使われかたでは役員が毎年代わる前提での引き継ぎの形を、それぞれ具体的に示しています。自分の集まりがどちらに近いかを先に決めると、道具の選び方が絞れます。
連絡の道具側から見ると、当番表の何が変わるか
当番表を表計算ソフトで作るか、グループ連絡アプリの機能として持つかは、機能の多さではなく責任の持ち場の違いです。
表計算ソフトで作ると、最新かどうかを保つ責任が、とりまとめる人に集まります。直したファイルを配り、古いものを捨ててもらい、見ていない人に声をかけます。この作業は毎月発生し、役員が代わっても引き継がれません。引き継ぎのときに渡されるのはファイルだけで、配る手順は渡されないためです。
グループ連絡アプリの中に当番表を持つと、最新かどうかを保つ責任が仕組み側に移ります。表は1つしかなく、開いた人は必ず最新を見ます。交代を入れたら、その場で全員の画面が変わります。とりまとめる人がやることは、交代を入れることだけになります。かわりに、全員がそのアプリを開ける状態にしておく必要があり、そこが最初の関門になります。
もう1つの違いは、見える範囲です。表計算ソフトのファイルをリンクで配ると、そのリンクを持っている人は誰でも開けます。名簿と当番表が同じファイルに入っていれば、住所や電話番号まで一緒に渡ることになります。会員の名簿が外に出る経路は、ほとんどがこの形です。グループ連絡アプリで持つ場合はメンバー以外は見られない状態が既定になるため、リンクの管理という作業自体がなくなります。
判断の材料をもう1つ挙げると、記録が残るかどうかです。誰がいつ交代を申し出て、誰が代わったかが残っていれば、翌年の回数調整に使えます。表計算ソフトでは、上書きした時点で前の状態が消えます。変更履歴を残す機能を使えば追えますが、何を直したかを読み取るには手間がかかります。
切り替えるかどうかを決めるときは、いま困っていることを数で書き出すのが確実です。1年間で当番表を配り直した回数、交代の連絡を受けた回数、当日に誰も来なかった回数、この3つを数えます。配り直しが年に数回で、交代の連絡がほとんど来ず、行き違いが起きていないなら、エクセルのままで問題ありません。数え方が分からない場合は、直近の3か月だけを振り返れば傾向が見えます。
逆に、交代の連絡が毎月のように来て、そのたびに表を直して配り直しているなら、その作業は年間で数十時間に達します。役員の任期が1年の集まりでは、この数十時間がそのまま引き受け手のいない負担になり、なり手が見つからない理由の一部になります。当番表の作り方を工夫するだけでは、この部分は減りません。減るのは、表が1つしかなく、開いた人が必ず最新を見る形にしたときだけです。
他の道具との比べ方については、BANDとの比較で予定表と出欠の扱いを、Discordとの比較で招待と参加の管理の違いを扱っています。判断に迷う点があれば、よくある質問に運営の切り替えでよく出る疑問をまとめています。どの道具を選ぶにしても、当番表を作る手間と、配って最新に保つ手間を別々に見積もることが出発点になります。
Q1. エクセルで当番表を作るのに、どれくらいの関数の知識が必要ですか?
日付を自動で並べる WORKDAY、担当者を順番に回す MOD と INDEX、回数を数える COUNTIF の4つで足ります。どれも引数が3つ以内で、1つずつ試せば半日で組めます。祝日の一覧を別シートに縦に並べておくことだけ先に済ませておくと、あとの作業が短くなります。
Q2. 途中で人が抜けたとき、表を全部作り直すことになりますか?
名簿を別シートに分け、担当者の列を INDEX と MOD の式にしておけば、名簿の行を消すか休会の印を付けるだけで以降の割り当てが詰まります。ただし過去の割り当ても一緒に動くため、確定した月の分は別シートに値として残しておくのが安全です。
Q3. エクセルを持っていない会員がいる場合はどうすればよいですか?
配るものをPDFにすれば、相手の環境を問わず同じ見た目で開けます。ブラウザで使えるウェブ版のエクセルや Googleスプレッドシートに読み込む方法もありますが、書式が変わることがあるため、配る先の画面を一度確かめてから運用に乗せてください。
Q4. 当番の交代が多い集まりでもエクセルで続けられますか?
続けられますが、交代のたびに表を直して配り直す作業が発生します。月に数回以上の交代がある集まりでは、表を1か所にまとめて全員がその場で最新を見る形にしたほうが、とりまとめる人の手数が減ります。交代の連絡と表の更新が別の場所で起きている状態が、当日の行き違いの原因になります。
