- 公開日:
エクセルを使ってデータをランダムに振り分ける方法
エクセルはデータの整理や分析に便利なツールですが、特定の条件に基づいてデータをランダムに振り分けることも可能です。
例えば、グループ分けや席を決めたいときなど、メンバーをランダムに分ける必要がある場合に役立ちます。
この記事では、エクセルを使って簡単にデータをランダムに振り分ける方法をご紹介します。
エクセルを使ってデータをランダムに振り分ける方法
エクセルを使ってデータをランダムに振り分ける方法をご紹介します。
VLOOKUP関数でデータをランダムに振り分ける

上図のようにクラスの生徒を「席番号」へランダムに振り分け、席を決めたい場合を例にご説明します。
VLOOKUP関数でデータをランダムに振り分ける方法は、以下のとおりです。

生徒の氏名のほか、以下の項目を追加します。
①「席番号」(A列)、②「乱数」(C列)、③「席番号」「氏名」(E,F列)を追加します。
E列の「席番号」には生徒数と合致する連番を入力します。

C列「乱数」のセル(例:C2)に、「=RAND()」と入力し、Enterを押します。
RAND関数とは、乱数を作成する関数です。
RAND関数の書式は「=RAND()」となり、引数はありません。
Excelファイルが再計算される度に、0以上1未満の整数をランダムに作成します。

①関数を入力したセル(例:C2)を選択します。
②セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

C列に乱数を表示させることができました。
A列「席番号」のセル(例:A2)に、「=RANK(C2,C$2:C$26,0)」と入力し、Enterを押します。
RANK関数はデータの順位を求める関数で、書式は「=RANK(数値,参照,[順序])」となります。
「数値」で順位付けしたいデータ(C2)、「参照」で順位を求める範囲(C$2:C$26)、最後に順序で大きい方から数えるのか小さい方から数えるのか(「0」は降順)を指定しています。
この数式で、その乱数が全乱数の中で何番目に大きいのかが返されます。

①関数を入力したセル(例:A2)を選択します。
②セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

A列に乱数の順位を返すことができました。
F列「氏名」のセル(例:F2)に、「=VLOOKUP(E2,A$2:C$26,2,FALSE)」と入力し、Enterを押します。
VLOOKUP関数は、指定した範囲の先頭列を縦方向に検索し、条件に一致したデータを取り出してくれる関数です。書式は「=VLOOKUP(検索値, 範囲, 列番号, [検索の型])」となります。
「範囲」(A$2:C$26)の中から、「検索値」の「E2」に一致したデータの「2」列目を抽出する指定をしています。

①関数を入力したセル(例:F2)を選択します。
②セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

F列「氏名」に、席番号をランダムに振り分けることができました。
XLOOKUP関数でデータをランダムに振り分ける

上図のB列「メンバー」を、D列「グループ」の「3人一組」に振り分ける場合を例にご説明します。
XLOOKUP関数でデータをランダムに振り分ける方法は、以下のとおりです。

任意のセル(例:H2)に「=RAND()」と入力し、Enterを押します。
RAND関数については、「VLOOKUP関数でデータをランダムに振り分ける」セクションのSTEP 2で詳しくご説明しています。

①関数を入力したセル(例:H2)を選択します。
②セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

H列に乱数を表示させることができました。
任意のセル(例:G2)に「=RANK(H2,H$2:H$16,0)」と入力し、Enterを押します。
RANK関数については、「VLOOKUP関数でデータをランダムに振り分ける」セクションのSTEP 4で詳しくご説明しています。

①関数を入力したセル(例:G2)を選択します。
②セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

E列に乱数の順位を返すことができました。
任意のセル(例:E2)に「=XLOOKUP(G2,A$2:A$16,B$2:B$16)」と入力し、Enterを押します。
VLOOKUP関数は縦方向、HLOOKUP関数は横方向にそれぞれ検索し、特定のデータを取り出す関数でしたが、XLOOKUP関数は、縦方向・横方向の検索を1つの関数でカバーすることができます。
書式は「=XLOOKUP(検索値,検索範囲,戻り配列,[一致モード],[検索モード])」となり、[一致モード],[検索モード]は省略可能です。
「検索値」でランダムに振り分けられた整数(G2)、「検索範囲」で「No.」(A$2:A$16)を指定します。
「戻り配列」で検索の結果として返すセルや範囲(B$2:B$16)を指定します。

①関数を入力したセル(例:E2)を選択します。
②セルの右下にマウスオーバーし、+マークを表示させて下方向にドラッグします。

XLOOKUP関数で「メンバー」を「3人一組」のグループに振り分けることができました。
エクセルでランダム抽出する方法

上図は、A列「No.」からランダムに数字を抽出した例です。
下記の記事では、エクセルでランダム抽出する方法について詳しく解説しています。上記の例の「No.」は1~10ですが、好きな数字や文字などに変更して応用することが可能です。
エクセルでランダム抽出することは、抽選やサンプリングを行う際に活用されることが多く、正確で公正な結果を得るためには適切な方法です。
ランダム抽出のためのツールやシーン別の方法、具体的な手順をご紹介していますので、ぜひ参考にしてみてください。