【スプレッドシート】周期的な担当割り当てを自動で行う方法【基礎編】

会社内のちょっとした雑務を持ち回りで担当する際など、特定のメンバーを日付などに応じて周期的に割り当てたい……と言ったケースは結構あるんではないでしょうか?
本稿ではその様なスケジュール表をスプレッドシートで簡単に作成する方法をお教えします。

完成イメージ

  • 日付に合わせて曜日とその日の担当メンバーが表示される

  • 割り当てられるメンバーは別シートで管理できる

完成イメージ

作り方

日付・曜日の表示

スケジュール表ということで、まずは日付を記入します。今回は特に関数などを使用せず、任意の開始日を記載した後にコピーしてオートフィル機能で日付を記入していきます。

日付を記入したら、一つ下の行を指定し、TEXT関数で曜日を表示させます。

【記入する関数(TEXT)】

=TEXT(A$1,"dddd")

TEXT関数で日付の下に曜日を表示する

メンバー管理表の作成

スケジュール表とは別のシートに「メンバー」として表示させるメンバーの管理表を作成します。
A列を「no.」B列を「name」として今回は図の様に佐藤・田中・鈴木・山田・安西の5人を記載します。

※今回は仕組みを簡単に説明する為にメンバーを5人で作成していますが、人数が増えても制作可能です

シート名は必ず「メンバー」にする


周期的な割り当ての仕組み

今回一番肝心な要素となりますが、以下2つの手順を踏むことで「メンバー」シートに記載したメンバーを周期的に表示させます。

  1. 指定した範囲で数字を繰り返し表示させる

  2. 数字に紐づいたメンバーを表示させる

1.指定した範囲で数字を繰り返し表示させる

メンバーの名前を周期的に表示させる前に、まずは数字を周期的に表示させます。以下に記載した【数字を表示させる条件】を満たす様にif文を作成します。今回は表示させるメンバーが5人なので1から5を繰り返す様に記述していきます。

【数字を表示させる条件】

  • 1から5を順番に表示(1個前の数字に+1する)

  • 5の次は1を表示(1個前の数字が5の時は1に戻す)

【記入する関数(if)】

=if(A$3=5,1,A$3+1)
※起点となる一番最初の日付(9/8分)について、今回は予め1を記入します。関数を工夫することで、初回の1を自動で記入させることも可能です。

ifを活用して1から5を繰り返す

2.数字に紐づいたメンバーを表示させる

次が最後の手順です。1から5が繰り返して表示される様になったので、先ほど作成したメンバー管理表から数字に紐づいたメンバーをVLOOKUPを使用して表示させます。

【VLOOKUP】で指定する条件

  • 検索キー:周期的に表示させた数字

  • 範囲:メンバー管理表(No,とname)

  • 指数:2(範囲の何列目を表示するか)

【記入する関数(VLOOKUP)】

=VLOOKUP(A$3,'メンバー'!$A$2:$B$6,2)

周期的に表示される1から5の数字で管理表を検索し、それと紐づくメンバーの名前を表示する

完成

これまで記入してきた関数を横方向にコピーしていきスケジュール表を完成させます。この際、関数内での参照(相対参照・絶対参照)に誤りがあるとエラーが出てしまう為注意が必要です。

3行目の数字に合わせて4行目にメンバーの名前が周期的に表示されています

次回

いかがだったでしょうか。今回紹介した手順でシートを作成することで、この様に比較的簡単にメンバーを周期的に割り振る事が出来てしまいます。
ただし、完成とは言っても今の状態だと、土日や祝日の場合であってもそのままメンバーが割り振られていますよね……

という訳で、次回【応用編】では、土日・祝日を回避する方法や、その他追加のアイデアを紹介しつつ、より実際の仕事で使えるモノを目指していこうと思います!

いいなと思ったら応援しよう!