重複しない!Excelでランダムにメンバーを振り分ける方法

一瞬で決まる!エクセルでランダムなチーム分けをする方法

当サイトはアフィリエイト広告を利用しています。

二人一組のペアの作成やグループ分けなどを行う際、人数が多いと手作業では時間がかかってしまいます。Excelで自動化できたら楽ですよね。

そこで今回は、Excelでランダムにメンバーを振り分ける方法をご紹介します。

Excelでランダムにメンバーを振り分けるときに使用する関数

Excelでランダムにメンバーを振り分けるには、以下のような関数を使います。

  • RAND関数
  • RANK関数
  • XLOOKUP関数

なお、XLOOKUP関数はMicrosoft 365やOffice 2021以降でなければ使用できません。以下の記事にてMicrosoft 365やOffice 2021の購入ページをご紹介していますので、Office 2019以前のバージョンをお使いの方はチェックしてみてください。

RAND関数

RAND関数(ランダム関数)は、0以上1未満の実数(最大で小数点15桁まで)の乱数を返す関数です。

RAND関数の構文

RAND()

RAND関数には引数はありません。

RAND関数は、メンバーの人数分の乱数を発生させるために使います。

RANK関数

RANK関数(ランク関数)は、数値が範囲の中で何番目に大きいかまたは小さいかを返す関数です。

RANK関数の構文

RANK(数値, 範囲, [順序]

数値(必須)
順位を調べる数値を指定する。
範囲(必須)
順位を調べる範囲を指定する。
順序(省略可)
順位の調べ方を以下のいずれかで指定する。省略すると「0」として処理される。
  • 0:【数値】が何番目に大きいか調べる。
  • 0以外:【数値】が何番目に小さいか調べる。

RANK関数は、乱数を順位付けするために使います。

XLOOKUP関数

XLOOKUP関数(エックスルックアップ関数)は、条件に一致する値を返す関数です。

XLOOKUP関数の構文

XLOOKUP(検査値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード]

検査値(必須)
検索する値を指定する。
検索範囲(必須)
検索する値を含む範囲を指定する。範囲の高さは【戻り範囲】と同じにする。
戻り範囲(必須)
取得したい値を含む範囲を指定する。範囲の高さは【検索範囲】と同じにする。
見つからない場合(省略可)
【検索値】が見つからない場合に表示する値を指定する。
一致モード(省略可)
一致の種類を以下のいずれかで指定する。省略すると「0」として処理される。
  • 0:完全一致で検索する。見つからない場合は、【見つからない場合】の値を返す。
  • -1:完全一致で検索する。見つからない場合は、次に見つかった小さな値を返す。
  • 1:完全一致で検索する。見つからない場合は、次に見つかった大きな値を返す。
  • 2:「*」「?」「~」をワイルドカードとして使用できる。
検索モード(省略可)
検索の方向を以下のいずれかで指定する。省略すると「1」として処理される。
  • 1:先頭から末尾に向かって検索する。
  • -1:末尾から先頭に向かって検索する。
  • 2:先頭から末尾に向かって高速で検索する。データを昇順に並べ替えておく必要がある。
  • -2:末尾から先頭に向かって高速で検索する。データを降順に並べ替えておく必要がある。

XLOOKUP関数は、順位に対応する固有番号のメンバーを取り出すために使います。

たとえば、固有番号「1」が「佐藤」、「2」が「鈴木」であれば、順位「1」で検索したときは「佐藤」を、順位「2」で検索したときは「鈴木」を取り出すことができます。

Excelでランダムに二人一組のペアを作成する方法

(例)B1~B10のメンバーをランダムにC1~C10に振り分けて二人一組のペアを作成する。A1~A10にはメンバー固有の番号が入力されている。

まずF1に=RAND()と入力します。入力したらF1の右下の■をF10までドラッグして数式をコピーします。

Excel

E1に=RANK(F1,F$1:F$10)と入力します。入力したらE10まで数式をコピーします。

Excel

C1に=XLOOKUP(E1,A$1:A$10,B$1:B$10,"")と入力します。入力したらC10まで数式をコピーします。

Excel

C列の値が重複することはないですが、B列とC列の値は重複することがあります。

なので、B列とC列が重複している場合にすぐに振り分けし直せるよう、重複している場合にC列に色が付くようにします。そのためにはまずC1~C10を選択して「ホーム」タブ⇒「条件付き書式」⇒「新しいルール」を選択します。

Excel

「新しい書式ルール」が表示されたら、「数式を使用して、書式設定するセルを決定」を選択⇒入力ボックスに=$C1=$B1と入力⇒「書式」をクリックします。

Excel

「セルの書式設定」が表示されたら「塗りつぶし」タブ⇒色を選択⇒「OK」をクリックします。

Excel

「新しい書式ルール」に戻ったら「OK」をクリックします。これで作業は完了です。

Excel

C1~C10に色付きセルがあれば重複しているということなので、色付きセルがなくなるまで[F9]を押して振り分けし直しましょう。

Excel

Excelでランダムにグループ分けを行う方法

(例)B1~B10のメンバーをランダムに3人・3人・4人に振り分けてE1~E10に表示する。A1~A10にはメンバー固有の番号が入力されている。

まずH1に=RAND()と入力します。入力したらH1の右下の■をH10までドラッグして数式をコピーします。

Excel

G1に=RANK(H1,H$1:H$10)と入力します。入力したらG10まで数式をコピーします。

Excel

E1に=XLOOKUP(G1,A$1:A$10,B$1:B$10,"")と入力します。入力したらE10まで数式をコピーします。これで作業は完了です。振り分けし直したいときは[F9]を押しましょう。

Excel

Excelでランダムな組み合わせが変わらないようにする方法

Excelで作成したランダムな組み合わせは、ファイルを開き直したりセルを編集したりするたびに変わります。変えたくない場合は、作成した組み合わせをメモ帳などにコピペするか、変動する値を値として貼り付けます。

値として貼り付けるには、対象範囲を選択して[Ctrl]+[C]でコピー⇒[Alt]+[Ctrl]+[V]を押します。

Excel

「形式を選択して貼り付け」が表示されたら、[V]を押して[Enter]で確定します。

Excel

これで値が変動しなくなります。

Excel

まとめ

今回は、Excelでランダムにメンバーを振り分ける方法をご紹介しました。

条件を指定してランダムに振り分けるのはやや難しいですが、単純に振り分けるだけならいくつかの関数を使えばいいだけなので簡単ですよ。