こんにちは。福田泰裕です。
クラス担任をしていると、様々な当番表がありますよね。
ストーブ当番、水やり当番、餌やり当番‥‥‥
どれも、当番表を作るのは結構大変です。
しかし、MOD関数を使うことで当番表が簡単に作成できます!
MOD関数?
聞いたことないよ‥‥‥
という方のために、MOD関数の使い方から詳しく説明していくので安心してください!
最後まで読んでいただけると嬉しいです。
目次
MOD関数の2つの引数
MOD関数は割り算の余りを求める関数で、2つの引数が必要です。
このように指定して、「割られる数」を「割る数」で割った余りが返されます。
MOD関数の使い方の例
使い方も、とても簡単です。
=MOD(5,2)
と入力すれば…👇
5を2で割った余りの「1」が表示されます👇
また、セルを参照することも可能です。
このようにセルを参照すると…👇
8を3で割った余りの「2」が表示されます👇
このようにして、MOD関数を使えば割り算の余りが取得できるのです。
MOD関数を使って、1か月の当番表を作る
それでは、実際に当番表を作っていこうと思います。
今回はこのような表を考えていきます👇
1日につき、朝と昼の2人が当番になるというものです。
しかし、ここで注意点があります。
学校が休みの日やテストが行われる日、内科検診の行われる日は当番がないということにします。
つまり、目標は下のような感じです👇
クラスが9人しかいないので、9番の渚くんの次は1番の岩鬼くんに戻るようにしなければなりません。
この数字を1年分すべて入力するのは、面倒臭いので関数を使っていきましょう。
MOD関数までの準備
まずカレンダーの左側に、当番がある日に「1」を入れていきます👇
次に、セルB10に、
=IF(A10=””,””,SUM(A$4:A10)*2-1)
と入力します👇
「空欄」つまり「休み」ならば当番はないので空欄。
「空欄でない」ならば当番があるので、「平日の日数×2 – 1」を計算しています。
これをオートフィルで縦にコピーすると…👇
このようになりました。
しかしこのままVLOOKUP関数を使うと、10以上の番号で検索しても誰も見つからないためエラーになります。
MOD関数を使い、当番の番号をつくる
それでは、MOD関数を使っていきます。
作業列のセルH4に、
=IF($B4=””,””,MOD($B4,COUNTA($L$4:$L$23)))
と入力します👇
「空欄」つまり当番のない日は空欄で、「空欄ではない」つまり当番がある日はMOD関数を実行します。
MOD関数の中身は、セルB4の数を、クラスの人数で割った余りを表示するものになっています。
次に、隣のセルI3には先ほどの式をコピーして、
=IF($B4=””,””,MOD($B4+1,COUNTA($L$4:$L$23)))
「+1」を追加します👇
これを下へオートフィルでコピーすると…👇
このように、人数の「9」で割った余りが表示されます!
このままVLOOKUP関数で検索したいのですが、1つだけ問題があります。
それは、8番の次が「0」になっているのです。
そのため、出席番号が最後の人を検索するときは、「0」で検索する必要があります。
検索する番号を工夫する
さまざまな方法がありますが、シンプルな方法でいきましょう。
まず、名簿の作業列のセルK4に
=IF(J4=COUNTA($L$4:$L$23),0,J4)
と入力します👇
左の番号と人数が等しいときは「0」、そうでない場合は番号のままを表示します。
オートフィルを使って下へコピーすると…👇
このように、番号9の渚くんだけが「0」となります。
VLOOKUP関数で検索する
ここまで準備ができたら、最後にVLOOKUP関数で検索しましょう。
セルF4に、
=IF($B4=””,””,VLOOKUP(H4,$K$4:$L$23,2,FALSE))
と入力します👇
「空欄」つまり当番のない日は空欄、そうでない日は、VLOOKUP関数を使って当番を検索します。
これを右と下へオートフィルでコピーすると…👇
これで、1か月の当番表が完成しました!
MOD関数を使って、2か月以上の当番表を作る
次に2か月以上ある場合の当番表を作っていきましょう。
基本的には1か月のものと同じで、ひと手間加えるだけです。
まずは先ほど作成した表をコピーして、関数の参照先を修正します。
セルをダブルクリックして、参照先を変更させてください👇
しかしこのままでは、毎月1番からのスタートになってしまいます。
5月のセルB32が「25」で終わっているので、6月のセルL4は「27」から始まらないといけません。
セルL4を、
=IF(K4=””,””,MAX(B4:B34)+1+SUM(K$4:K4)*2-1)
と変更します👇
オートフィルで下へコピーすると…👇
ちゃんと、5月の最後が8番の高代くん、6月の最初が9番の渚くんに変わりました。
あとは、この6月の表をコピペしていけば、何か月でも作ることができます。
まとめ:MOD関数でループする当番表を作れる
いかがでしたでしょうか。
今回紹介した当番表の最大の利点は、一度作成するとずっと使えるという点です。
名簿を貼り替えて、平日と休日の「1」を入力するだけで簡単に利用できます。
このように、翌年以降も使えるファイルを作っておくことが、教師の働き方改革へつながると考えています。
最後まで読んでいただき、ありがとうございました。
質問やご意見、ご感想などがあればコメント欄にお願いします👇
コメント