【Excel】リストからランダム(無作為)に抽出するRAND関数の使い方。抽選や並び替えや席替えに!

ランダムに抽出するrand関数

皆さん、Excel(エクセル)でランダムな数値を作成することが出来るRAND関数RANDBETWEEN関数という便利な関数を知っていますか?

この関数を利用することで、抽選リストからランダム(無作為)に当選者を選んだり、氏名リストからランダムに座席表を作成したり、リストをランダムに並び替えたりすることが可能です。

今回は、ランダムな数値を作成するRAND関数とRANDBETWEEN関数の使い方と、席替えなどの実用的なRAND関数の使い方8薦を紹介します。

この記事で紹介する実用的な使い方8薦

  • ランダムに当選者を決める方法
  • ランダムに並び替える方法
  • ランダムに順番を決定する方法
  • ランダムに席替え(席順)する方法
  • ランダムでレイアウト自由な座席表を作成する方法
  • ランダムなパスワードを作成する方法
  • 足し算などの四則演算用の計算ドリルを作成する方法
  • ランダムな売上サンプルデータを作成する方法

ランダムな数字を自動で作成する方法

ランダムのイメージ

エクセルには、ランダムな数値を作成するためのRAND関数(ランド、ランダム)とRANDBETWEEN関数(ランド・ビットウィーン、ランダム・ビットウィーン)の2つの関数が備わっています。

RAND関数は、0~1未満の小数点を含んだ数値を自動で作成する関数です。

RANDBETWEEN関数は、好きな範囲を指定してランダムな整数を作成することが出来る関数です。

それでは、それぞれの関数の使い方を解説していきます。

0以上1未満のランダムな数値を作成(RAND関数)

まずは、RAND関数(ランド)の使い方を紹介します。

RAND関数は0以上で1より小さい実数の「乱数」を発生させる関数です。「F9」キーを押す、などの操作で再計算する度に新しい乱数に変更されます。

まずはRAND(ランド)関数の使い方を知るために構文を確認しましょう。

=RAND()

普通の関数の構文とは少し異なり、引数が無い関数で、この関数を使用すると下の図のように0~1の異なる数値がランダムに発生されます。

RAND関数の使い方
RAND関数の使い方

上の例では、小数5桁までしか表示されていませんが、桁数を広げて表示すると、実際は下のように小数点15桁までが作成されています。

15桁の乱数を自動で生成するので、重複する可能性はまず無さそうだね。

RAND関数は小数点15桁の数値を自動で生成
RAND関数は小数点15桁の数値を自動で生成

このランダムな数値は、「F9」キーのクリックセルのダブルクリックセルの数値の変更などの操作により、下の図のようにRAND関数の数値が何度でも変更されます。

「F9」キーはワークシートの再計算の機能を持っているよ。

「F9」キーの操作でRAND関数の数値が変化
「F9」キーの操作でRAND関数の数値が変化

範囲を指定したランダムな整数を作成(RANDBETWEEN関数)

次に紹介するのは、RANDBETWEEN関数(ランド・ビットウィーン、ランダム・ビットウィーン)です。

RANDBETWEEN関数は好きな値の範囲を指定してランダムな整数を作成することが出来ます。

こちらもRAND関数と同様に、「F9」キーを押す、などの操作で再計算する度に新しい乱数に変更されます。

RAND関数との違いは、”好きな範囲内”で”整数”の乱数、というとことです。

では、まず構文を紹介します。

=RANDBETWEEN(最小値,最大値)

引数に最大値と最小値を指定するだけのシンプルな関数ですが、整数で範囲を指定できるため、小数点15桁の乱数を作成するRAND関数と異なり、重複する可能性があるという点は少し注意が必要です。

下の図のように、引数に最小値”-50”、最大値”50”を指定して、RANDBETWEEN関数を挿入すると、-50から50までの範囲の整数が自動で作成されます。

RANDBETWEEN関数は指定の範囲内の整数を自動で作成
RANDBETWEEN関数は指定の範囲内の整数を自動で作成

好きな桁数の小数点を含むランダムな数値の作り方

RAND関数は0~1未満の小数点を含む数値、RANDBETWEEN関数は整数を生成するため、好きな桁数(10桁、100桁等)の小数点を含むランダムな数値を作るには、少しテクニックが必要です。

例えば、1桁の小数点を含むランダムな数字を作成したい場合には、下のようにRANDBETWEEN関数で1~9までの整数を作成し、RAND関数と足し算することで実現できます。

1桁の小数点を含むランダムな数値を作成
=RANDBETWEEN(1,9)+RAND()

10桁の小数点を含むランダムな数字を作成する場合も、RANDBETWEEN関数の範囲を10~99に変更するだけで可能です。

10桁の小数点を含むランダムな数値を作成
=RANDBETWEEN(10,99)+RAND()

100桁以上の数値ももちろん作成可能です。下の図を参考にしてみて下さい。

小数点を含む好きな桁数のランダムな数値の作成方法
小数点を含む好きな桁数のランダムな数値の作成方法

RAND関数で小数点第15位までの数値が発生するため、小数点の位を調整したい場合は、上の式全体をROUND関数で囲う(赤字部分)と、下の表のように小数点第2位のランダムな数値を表示することも可能です。

=ROUND(RANDBETWEEN(1,9)+RAND(),2)

小数点第2位のランダムな数値の作成方法
小数点第2位のランダムな数値の作成方法

ランダムな数値の重複をチェックする方法

一つ前の見出しで紹介した通り、RAND関数は小数点15位までの数値のため、重複の可能性は限りなく低いですが、RANDBETWEEN関数は整数で範囲を絞るために重複の可能性があります。

重複しないような整数のランダム関数を作成すると、VBAなどの高度な技術が必要なので、RANDBETWEEN関数の最小値と最大値の範囲を広げたり、小数点を含むRAND関数を併用して重複しないような利用方法を心がけましょう。

それでも重複が心配な方は下のように、重複データのチェックの方法を解説します。

下の図のように、RANDBETWEEN関数で1~30までの整数が作成されているB3セルからB14セルまでの範囲で重複データのチェックを行います。

まず、B3セルからB14セルまでの範囲を選択(図①)して、「ホーム」タブ⇒「条件付き書式」⇒「セルの強調表示ルール」⇒「重複する値」を選択(図➁)します。

ランダムな数値の重複を確認する手順①
ランダムな数値の重複を確認する手順①

そうすると、数値が重複しているセルは、ピンク色で表示されます。下の図では、4と20と21の3つの数値が重複していることが確認(図③)出来ましたので、「OK」で画面を閉じます(図④)。

ランダムな数値の重複を確認する手順➁
ランダムな数値の重複を確認する手順➁

重複データの確認方法は、【【エクセル】最速で重複データをチェック&抽出し削除する方法!】の記事でも紹介していますので、参考にしてみて下さい。

ランダムな数値を固定する方法

ランダムな数値は『F9』キーを押すなどの再計算の実施で、何度も数値が更新されます。

利用する状況によっては、数値が更新されると困る場合もあると思いますので、ランダムな数値を固定する方法を2つ紹介します。

ランダムな数値を挿入時に固定する

RAND関数やRANDBETWEEN関数を作成して、『Enterで確定する前に『F9』キーを押します。

そうすると、下のようにセルの値は、ランダムな数値が固定されて表示されます。

ランダムな数値を固定する方法
ランダムな数値を固定する方法

複数のセルを一括で固定したい場合は、次の見出しで紹介する方法の利用して下さい。

ランダムな数値を値で貼り付けて固定する

ランダムな数値を固定する2つ目の方法は、値で貼り付け直して固定値に変換します。

下の図のように、RAND関数やRANDBETWEEN関数が挿入されたセルを選択して「Ctrl」+「C」キーでコピー(図①)した後に、右クリックしてから「V」キーを押します。

ランダムな数値を固定する方法(値の貼り付け)
ランダムな数値を固定する方法(値の貼り付け)

この方法で値貼り付けが可能ですが、1点注意しなければいけない点があります。

右クリック後に「V」キーを押さず、右クリックメニューの中の「値の貼り付け」ボタンを押そうとすると、それ以外の貼り付けボタンにカーソルを通過させてしまうと、ランダムな数値が更新されてしまうので、必ず「V」キーで貼り付けるようにしましょう。

席替えや並び替えなどの実用的な使い方を8薦紹介

それでは、RAND関数やRANDBETWEEN関数を使った、実用的な使い方をご紹介します。

ランダムに当選者を決める方法

RAND関数の具体的な使い方として生徒名簿から当選者をランダムに3名抽出する方法をご紹介します。

RAND関数だけでは乱数が発生するだけなので、IF関数RANK.EQ(ランクイコール)関数を併用します。

乱数のリストをRANK.EQ関数でランク付けして、IF関数でその上位”3名”を”当選”と表示させます。

RANK.EQ関数だけ見慣れない関数だと思うので、構文を紹介します。

=RANK.EQ(数値,参照,順序)

  • 数値:順位を求めたい数値を指定します。
  • 参照:数値データ全体を指定します。
  • 順序:1または0以外を指定すると昇順となり、0を指定すると降順になります。省略すると降順となります。

それでは具体的に手順で説明します。

手順1.RAND関数を挿入

生徒名簿の右にRAND関数を挿入します。RAND関数に引数はありません。

生徒名簿の右にRAND関数を挿入
生徒名簿の右にRAND関数を挿入

手順2.IF関数の中にRANK.EQ関数を挿入

RAND関数の右に、上位3名が”当選”、それ以外が”-”となるように以下のIF関数を挿入します。

RAND関数で発生した乱数のうち、数値の小さい上位3つが、”当選”と表示されます。

=IF(RANK.EQ(C3,$C$3:$C$11)<=3,"当選","-")

IF関数にRANKEQ関数を挿入して3名を抽出
IF関数にRANKEQ関数を挿入して3名を抽出

IF関数の使用に不慣れな方はこちらの記事も参考にしてみてね。

手順3.「F9」キーをクリックしてランダムに変わるか確認

「F9」キーをクリックしたり空白のセルをダブルクリックなどして、当選者がランダムに変われば無事終了です。

ランダムに当選者が変わる
ランダムに当選者が変わる

ランダムに並び替える方法

2つ目のRAND関数の具体的な使い方として、生徒名簿の並び順をランダムに並び替えする方法をご紹介します。

RAND関数だけでは乱数が発生するだけなので、自由に表を並び替えることが出来るオートフィルターを併用します。

手順1.RAND関数を挿入

下の図のように「順番」列、「生徒」列、「RAND関数」列を並べます。RAND関数に引数はありません。

「順序」列、「生徒」列、「RAND関数」列
「順序」列、「生徒」列、「RAND関数」列

手順2.オートフィルタを設定

下の図のように「生徒」列と「RAND関数」列の2行にだけオートフィルターを設定します。まず、「生徒」列と「RAND関数」列の2列を選択し、「ホーム」タブをクリックします。

2列を選択する
2列を選択する

次に、「並べ替えとフィルター」⇒「フィルター」を選択します。

「ホーム」タブの「フィルター」をクリック
「ホーム」タブの「フィルター」をクリック

そうすると、下の図のように、表全体ではなく、2列にだけフィルターを設定することが出来ました。

フィルタの設定完了
フィルタの設定完了

手順3.「RAND関数」列のフィルタを操作

「RAND関数」列のオートフィルターの▼をクリックし、「昇順」もしくは「降順」をクリックします。

RAND関数はフィルタの操作でも乱数を変化させますので、この操作を行うごとに「生徒」列の並び順も変化します。

「RAND関数」列のフィルタを操作
「RAND関数」列のフィルタを操作

手順4.「F4」キーをクリックしてランダムに変わるか確認

手順2で一度フィルターを操作するとExcelが前回操作を記憶してくれていますので、前回操作を繰り返すことが出来る「F4」キーを押すごとに並び順がランダムに変化します。

「F4」キーを押すごとに並び順がランダムに変化
「F4」キーを押すごとに並び順がランダムに変化

ランダムに順番を決定する方法

続いて、名簿からランダムに順番を決める方法を紹介します。

朝礼順や発表順などを決める時に利用出来ます。

手順1.RAND関数を挿入

下の図のように「名簿」列の横に「RAND関数」列を作成します。RAND関数に引数はありません。

RAND関数を挿入
RAND関数を挿入

手順2.RANK.EQ関数を挿入

「名簿」列の横に、指定したセル範囲の中の数値をランク付けすることが出来るRANK.EQ関数を挿入します。

RANK.EQ関数を挿入
RANK.EQ関数を挿入

手順3.RANK.EQ関数を下のセルにも挿入

手順2で作成したRANK.EQ関数を下のセルにも挿入すると完成です。下の図のように、「F9」キーを押すごとに順番が更新されます。

RAND関数とRANK.EQ関数で順番をランダムに決定
RAND関数とRANK.EQ関数で順番をランダムに決定

ランダムに席替え(席順)を決める方法

3つ目のRAND関数の具体的な使い方として、生徒の席替え(席順)をランダムに決定する方法をご紹介します。

RAND関数だけでは乱数が発生するだけなので、VLOOKUP関数も併用します。

手順1.座席表を作成

下の図のように座席表を作成し、座席の番号に数値(1~)を入力します。数値の下のセルには次以降のステップでVLOOKUP関数で生徒の名前がランダムに表示されるようにしますので1行空けてください。

座席表を作成
座席表を作成

手順2.生徒名簿リストを作成

別のワークシートや空きスペースに下の図の生徒名簿リストを作成します。

今回の説明では、”生徒名簿リスト”シートを新規に追加してリストを作成します。

ワークシートを追加
ワークシートを追加

「生徒」列の2つ左の列に「RAND関数」列を作成し、「生徒」列の1つ左の列に「RANK.EQ」列を作成して乱数に対してランク付けをします。

眼鏡先輩

「生徒」列のにRANK.EQ関数を挿入するのは、次のステップで
VLOOKUP関数の列番号を指定するためだよ。使い方はこっちの記事を見てね。

「生徒」列の左にランダムな数値
「生徒」列の左にランダムな数値

手順3.座席表にVLOOKUP関数を挿入

手順1で作成した座席表にVLOOKUP関数を挿入して、手順2の生徒名簿リストの「RANK.EQ」列と「生徒」列を検索範囲に設定します。

B5セルに挿入する数式は下記の通りです。

=VLOOKUP(B4,生徒名簿リスト!$C$2:$D$11,2,FALSE)

席順がランダムに決定
席順がランダムに決定

手順4.「F9」キーでランダムに席替えが決定されるか確認

最後に「F9」キーをクリック、もしくは好きなセルをダブルクリックして席順がランダムに変われば、無事完了です。

座席の数値が邪魔であれば、フォントの色を白色に塗りつぶしてください。

席順がランダムに変わる
席順がランダムに変わる

座席表のレイアウトを自由に変更できるランダムな席替え

一つ前の見出しで紹介した座席表は、セルの縦横のサイズを座席に合わせて調整する必要があります。

テキストボックスを使うことで、下の図のように、レイアウトや座席の形を自由に調整したランダムな座席表を作成することが出来ます。

ランダムな座席表

レイアウトを自由に変更できる座席表(長方形)
レイアウトを自由に変更できる座席表(長方形)

ランダムな円卓の座席表

レイアウトを自由に変更できる座席表(円卓)
レイアウトを自由に変更できる座席表(円卓)

もちろん、この方法もRAND関数を挿入することで、ランダムに座席を変更することが出来ます。

【【エクセル】座席表の簡単な作り方!円卓でも教室でもレイアウトや席順を自由に変更!】の記事で作成方法を紹介していますので、ぜひこちらも参考にしてみて下さい。

ランダムなパスワードを作成する方法

RANDBETWEEN関数を用いると英数字混合のランダムなパスワードを作成することが可能です。

使用する関数は、文字の指定した位置から文字数を切り出して表示できる『MID関数』、文字数を数える『LEN関数』の2つも利用します。

英数字混合のランダムなパスワードを作成
英数字混合のランダムなパスワードを作成

下のリンク記事で以下の2種類のパスワードの作成方法を紹介していますので、詳しい作成方法を知りたい方は参考にしてみて下さい。

  • 英数字混合のランダムなパスワード
  • 少なくとも1文字のアルファベットと数値を混合するランダムなパスワード

足し算などの四則演算用の計算ドリルを作成

小学生用の足し算や引き算などの四則演算の計算ドリルを作成する時には、RANDBETWEEN関数が活躍します。

RANDBETWEEN関数は好きな範囲の整数をランダムに作成することが出来るので、小学生向けの四則演算の計算ドリルをお手製で作成するのにすごく役立ちます。

我が家の長男の自主学習用の計算ドリルを作成する時によく使っています。個人的にはこの利用方法が一番好きです。

手順1.足し算に使う数値を作成

足し算に使用する数値をRANDBETWEEN関数で作成します。小学生の学力に合わせて桁数や数値の幅をRANDBETWEEN関数の引数で調整してください。下の例では、2桁の数値と2桁の数値の足し算の計算ドリルを作成し用としています。

=RANDBETWEEN(10,99)

数値がランダムな四則演算の計算ドリルを作成
数値がランダムな四則演算の計算ドリルを作成

手順2.答えを手書きするための入力枠を作成

計算ドリルを使用する小学生が手書するための入力枠を作成します。

手書き用の入力枠を作成
手書き用の入力枠を作成

手順3.解答を挿入

答え合わせ用の解答セルを挿入します。このセル範囲は印刷して折りたためて解答を隠せるように作っておくと便利です。

計算ドリルの解答を挿入
計算ドリルの解答を挿入

このように足し算だけでなく、引き算や掛け算でも計算ドリルを簡単に作成出来ます。

割り算の計算ドリルを作る場合は、答えのセルにRANDBETWEEN関数を挿入することで、下の図のように、答えが整数となる計算ドリルを作成することが出来ます。

数値がランダムな割り算の計算ドリルを作成
数値がランダムな割り算の計算ドリルを作成

足し算、引き算、掛け算、割り算の算数ドリルの詳しい作り方は下の記事で紹介していますので、興味のある方はぜひ参考にしてみてください。

売上サンプルデータを作成

売上明細データのサンプルデータを作成する時に、大量のセルに同じ数値を入れると不細工ですし、適当な数値を手入力していくのも大変です。

そんな時にはRANDBETWEEN関数が大活躍します。

売上数量と単価をRANDBETWEEN関数で自動で作成し、売上高を売上数量×単価で算出することで簡単にサンプルデータを作成することが出来ます。

単価が小数点を含む場合は、下の表を参考にRANDBETWEEN関数とRAND関数とROUND関数の組み合わせで作成することが出来ます。小数点第1位で関数を作成したい場合は、ROUND関数の引数を”1”で作成してください。

小数点の位を指定したランダム関数の作り方
小数点の位を指定したランダム関数の作り方

下の図のように、売上サンプルデータを作成出来ます。RANDBETWEEN関数の範囲はお好みに合わせて自由に調整してください。

RAND関数とRANDBETWEEN関数を使って売上サンプルデータを作成
RAND関数とRANDBETWEEN関数を使って売上サンプルデータを作成

ランダム関数は思った以上に役立つ!

今回はランダムな数値を作成することが出来るRAND関数とRANDBETWEEN関数の使い方を紹介しました。

また記事の中で具体的な使用例を8パターン紹介しましたが、思った以上に実用的な関数だと実感いただけたのではないでしょうか。

ぜひこれからもこの2つの関数を利用してみてくださいね。