Excel関数でランダムな数字を生成する方法をお探しですね。
広告
ExcelでRAND・RANDBETWEEN関数を使って、ランダムな数字を簡単に作る方法
Excelで「ランダムに選びたい」「順番をバラバラにしたい」というとき、便利なのが**RAND関数**と**RANDBETWEEN関数**です。
どちらもランダムな数字を作ってくれる関数ですが、それぞれ得意なことが違います。
この記事では、基本的な使い方から、リストからランダムに選ぶ方法、数字が重複しないようにするコツ、結果を固定する方法まで、初心者の方にも分かりやすく説明していきます。
RAND関数とRANDBETWEEN関数って何が違うの?
Excelでランダムな数字を作るとき、よく使われるのがこの2つの関数です。
**RAND関数**は、`=RAND()`と入力するだけで、**0以上1未満の小数**をランダムに作ってくれます。
たとえば「0.2468」とか「0.9135」みたいな数字が出てきます。
カッコの中に何も書かなくてOKです。
一方、**RANDBETWEEN関数**は、`=RANDBETWEEN(最小値, 最大値)`という形で使います。
指定した範囲の中から、**整数**をランダムに選んでくれます。
たとえば1から100までの整数が欲しいなら、`=RANDBETWEEN(1, 100)`と入力すればOKです。
どっちを使えばいいの?
使い分けのポイントは、**小数が欲しいか、整数が欲しいか**です。
– **RAND関数**が向いている場面:リストをシャッフルしたいとき、確率のシミュレーションをしたいとき
– **RANDBETWEEN関数**が向いている場面:抽選番号を作りたいとき、サイコロの目を再現したいとき、テスト用の点数を作りたいとき
どちらも、Excelが再計算されるたびに値が変わります。
なので、「この結果を残しておきたい!」というときは、ちょっとした工夫が必要です(後で説明します)。
基本の書き方まとめ
“`
=RAND() ← 0以上1未満の小数を作る
=RANDBETWEEN(1, 100) ← 1〜100の整数を作る
=RANDBETWEEN(-10, 10) ← -10〜10の整数を作る
“`
ちなみに、RAND関数で作られる小数はすごく細かいので、複数のセルにコピーしても同じ数字になることは、ほぼありません。
ただし、「絶対に重複しない」と保証されているわけではないので、厳密に重複を避けたいときは、後で紹介する「リストをシャッフルする方法」を使うのがおすすめです。
ランダムな数字を好きな範囲で作る方法
RAND関数は、そのままだと0以上1未満の小数しか作れません。
でも、ちょっと計算を加えると、好きな範囲に広げられます。
たとえば、**0以上10未満の小数**が欲しいときは:
“`
=RAND() * 10
“`
**10以上20未満の小数**が欲しいときは:
“`
=RAND() * 10 + 10
“`
これは、まず0〜10未満の乱数を作って、それに10を足して範囲をずらしているイメージです。
整数が欲しいときはRANDBETWEENが便利
整数を作りたいときは、RANDBETWEEN関数を使った方が簡単で、間違いも少なくなります。
– **0点から100点のダミー点数**を作る:`=RANDBETWEEN(0, 100)`
– **5桁のランダムな番号**を作る:`=RANDBETWEEN(10000, 99999)`
– **千単位で丸めた数字**(12000、35000など)を作る:`=RANDBETWEEN(10, 99) * 1000`
乱数は勝手に変わるので注意!
Excelの乱数関数で特に注意したいのが、**値が自動的に更新される**ことです。
– 別のセルを編集したとき
– ブックを開き直したとき
– F9キーを押して再計算したとき
こんなタイミングで、乱数が変わってしまうことがあります。
乱数を更新したいときは**F9キー**を押すと、ブック全体が再計算されます(ノートPCでは**Fnキー + F9**が必要な場合もあります)。
乱数を固定する方法
一度作った乱数を固定したいときは、**「値」として貼り付け**ます。
1. 乱数が入っているセルをコピー
2. 同じ場所(または別の場所)で右クリック
3. 「値の貼り付け」を選ぶ
これで、セルの中身が「=RAND()」ではなく、表示されていた数値そのものに変わります。
抽選結果やテストデータを記録として残すときは、必ずこの作業をしておくと安心です。
リストからランダムに選ぶ方法
「名簿の中から当選者を選びたい」「商品リストからサンプルを抽出したい」というとき、どうすればいいでしょうか?
1件だけランダムに選ぶ方法
**INDEX関数とRANDBETWEEN関数を組み合わせる**と簡単です。
たとえば、A2〜A11に名前のリストがあるとき:
“`
=INDEX(A2:A11, RANDBETWEEN(1, ROWS(A2:A11)))
“`
これで、リストの中からランダムに1人を表示できます。
ROWS関数は範囲内の行数を数えてくれるので、リストの人数が変わっても式を調整しやすくなります。
複数件を重複なしで選ぶ方法
複数人を選びたいときは、**RAND関数で補助列を作って並べ替える**方法がおすすめです。
手順
1. A列に参加者名があるとします
2. B列に`=RAND()`と入力して、下までコピー
3. A列とB列をまとめて選択
4. B列を基準に並べ替え(昇順でも降順でもOK)
5. 上から必要な人数分を選ぶ
これで、リスト全体がランダムな順番にシャッフルされます。
上から3人選べば、重複なしで3人を抽選できます。
なぜこの方法がいいの?
RANDBETWEEN関数で「1番から100番まで」を何度も作ると、同じ番号が出ることがあります。
でも、リスト全体をシャッフルする方法なら、**同じ人が2回選ばれることはありません**(元のリストに同じ人が重複していない限り)。
抽選やサンプル選定のように公平性が大事な場面では、この方法の方が分かりやすくて確認もしやすいです。
新しいExcelを使っている場合
Microsoft 365などの新しいバージョンでは、**SORTBY関数やRANDARRAY関数**を使って、もっとスマートにシャッフルできます。
“`
=SORTBY(A2:A11, RANDARRAY(ROWS(A2:A11)))
“`
これだけで、A2〜A11のリストをランダムな順番で表示できます。
さらに上位3件だけ取り出したいときは、**TAKE関数**を組み合わせる方法もあります。
ただし、これらの関数は新しいExcelでしか使えないので、職場や学校で共有するファイルでは、RAND関数の補助列を使う方法の方が安全です。
乱数を使う場面と失敗しないための注意点
こんなときに便利!
RAND関数やRANDBETWEEN関数は、いろんな場面で役立ちます。
**仕事で:**
– 売上データのサンプル作成
– 研修用のダミーデータ作成
– アンケート回答者の抽選
– 担当者のランダム割り当て
– 在庫や需要のシミュレーション
**勉強で:**
– 計算練習用の問題作成
– ゲームのスコア生成
– 確率の実験
実際のデータが使えないときでも、乱数で仮データを作れば、関数やグラフ、ピボットテーブルの練習がしやすくなります。
よくある失敗と対策
① 同じ数字が出てしまう
RANDBETWEEN関数で複数のセルに整数を作ると、同じ数字が出ることがあります。
これは不具合ではなく、ランダムに選んでいる以上、仕方ないことです。
**対策:**重複してはいけない抽選番号や名簿抽出では、元リストを用意してRAND関数で並べ替える方法を使いましょう。
② 抽選後に結果が変わってしまう
乱数は再計算で変わるので、抽選後に別のセルを編集しただけで結果が変わることがあります。
**対策:**結果を確定したら、必ず「値として貼り付け」で固定しましょう。
③ 見た目と実際の値が違う
RAND関数で作った小数を整数表示にしている場合、画面上は同じ「1」に見えても、実際のセルの値は「0.987」や「1.234」のように異なることがあります。
**対策:**抽選結果や提出用データとして使う場合は、ROUND関数で丸める、INT関数で整数化する、または最初からRANDBETWEEN関数を使うなど、目的に合った形に整えましょう。
Googleスプレッドシートでも使える?
Googleスプレッドシートでも、RAND関数やRANDBETWEEN関数はExcelとほぼ同じように使えます。
ただし、再計算のタイミングや一部の関数の対応状況は違う場合があります。
特に、複数人で共同編集しているシートでは、誰かが編集したタイミングで乱数が更新されることもあるので、抽選や記録に使う場合は「値貼り付け」を徹底するといいでしょう。
まとめ
Excel RAND・RANDBETWEEN関数を使いこなせば、テストデータ作成や抽選、リストからのランダム抽出が簡単にできるようになります。
**ポイントをおさらい:**
– **小数の乱数や並べ替えには → RAND関数**
– **指定範囲の整数には → RANDBETWEEN関数**
– **重複なしの抽出には → RAND関数でシャッフル**
– **結果を残したいときは → 値として貼り付け**
この基本を押さえておけば、実務でも安心して活用できます。
INDEX関数、ROWS関数、SORTBY関数などの関連記事もあわせて読むと、ランダム抽出の応用範囲がさらに広がりますよ!
広告
