【スプレッドシート】周期的な担当割り当てを自動で行う方法【基礎編】
会社内のちょっとした雑務を持ち回りで担当する際など、特定のメンバーを日付などに応じて周期的に割り当てたい……と言ったケースは結構あるんではないでしょうか?
本稿ではその様なスケジュール表をスプレッドシートで簡単に作成する方法をお教えします。
完成イメージ
日付に合わせて曜日とその日の担当メンバーが表示される
割り当てられるメンバーは別シートで管理できる
![](https://assets.st-note.com/img/1663111959189-v1C4V7CRK9.png?width=1200)
作り方
日付・曜日の表示
スケジュール表ということで、まずは日付を記入します。今回は特に関数などを使用せず、任意の開始日を記載した後にコピーしてオートフィル機能で日付を記入していきます。
日付を記入したら、一つ下の行を指定し、TEXT関数で曜日を表示させます。
【記入する関数(TEXT)】
=TEXT(A$1,"dddd")
![](https://assets.st-note.com/img/1663112049195-yYHCrWZfYT.png?width=1200)
メンバー管理表の作成
スケジュール表とは別のシートに「メンバー」として表示させるメンバーの管理表を作成します。
A列を「no.」B列を「name」として今回は図の様に佐藤・田中・鈴木・山田・安西の5人を記載します。
※今回は仕組みを簡単に説明する為にメンバーを5人で作成していますが、人数が増えても制作可能です
![](https://assets.st-note.com/img/1663112233622-Kv3uWtsbup.png?width=1200)
周期的な割り当ての仕組み
今回一番肝心な要素となりますが、以下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を自動で記入させることも可能です。
![](https://assets.st-note.com/img/1663113183876-Naj6ZLVw62.png?width=1200)
2.数字に紐づいたメンバーを表示させる
次が最後の手順です。1から5が繰り返して表示される様になったので、先ほど作成したメンバー管理表から数字に紐づいたメンバーをVLOOKUPを使用して表示させます。
【VLOOKUP】で指定する条件
検索キー:周期的に表示させた数字
範囲:メンバー管理表(No,とname)
指数:2(範囲の何列目を表示するか)
【記入する関数(VLOOKUP)】
=VLOOKUP(A$3,'メンバー'!$A$2:$B$6,2)
![](https://assets.st-note.com/img/1663113493583-67SINT1YsA.png?width=1200)
完成
これまで記入してきた関数を横方向にコピーしていきスケジュール表を完成させます。この際、関数内での参照(相対参照・絶対参照)に誤りがあるとエラーが出てしまう為注意が必要です。
![](https://assets.st-note.com/img/1663111959189-v1C4V7CRK9.png?width=1200)
次回
いかがだったでしょうか。今回紹介した手順でシートを作成することで、この様に比較的簡単にメンバーを周期的に割り振る事が出来てしまいます。
ただし、完成とは言っても今の状態だと、土日や祝日の場合であってもそのままメンバーが割り振られていますよね……
という訳で、次回【応用編】では、土日・祝日を回避する方法や、その他追加のアイデアを紹介しつつ、より実際の仕事で使えるモノを目指していこうと思います!
この記事が気に入ったらサポートをしてみませんか?