楽天リーベイツで楽天ポイント還元最大20%!今なら登録して初回購入で500ポイントもGET!

【エクセル】乱数を重複しないで生成する方法!意外と使える簡単技

3 min 2,894 views
エクセル初心者

エクセル初心者

エクセルで乱数を重複しないで作る方法を知りたい!

どんな関数を使うと生成できるのかな?

重複しない乱数を作るときはひと工夫必要になるよ!

整数で重複しない乱数を生成することができるのでやってみよう。

Dr.オフィス

Dr.オフィス

本記事は下記の動画でも解説しているので、ぜひ合わせてご覧ください。

YouTube video player

エクセルで乱数を生成する時に重複してしまうと困りますよね。

重複が起こりやすい関数もあるので、本記事を読んで重複が起こらない乱数の生成方法を学んでいきましょう!

重複しない乱数を生成する簡単ステップ
  1. RAND関数で乱数を生成する
  2. RANK.EQ関数で生成した乱数の順位付けをする
  3. 順位付けして表示された数値を乱数として扱う

PCサポート歴10年の私が分かりやすく解説するよ!

考え方の整理から少しずつ解説していくのでいっしょにやってみよう!

Dr.オフィス

Dr.オフィス

重複しない乱数はRAND関数とRANK.EQ関数を利用すると簡単に作ることができます。

関数を上手に使って乱数を有効に活用していきましょう。

エクセルの乱数についてはこちら≫【エクセル】乱数を生成する方法!以外と使える便利技で詳しく解説しています。

※本記事は『OS:Windows11』画像は『Excelのバージョン:Microsoft365』を使用しています。

エクセルを使った重複しない乱数の生成方法を整理してみよう!

重複しない整数の乱数
重複しない整数の乱数

重複しないで乱数を生成するためにはRAND関数を使います。

RANDBETWEEN関数やRANDARRAY関数は重複が起こることがあるよ!

Dr.オフィス

Dr.オフィス

RAND関数は0から1の数字のみ扱うため、整数の乱数を生成することができません。

そこで以下の2つの関数を使用して、『重複しない整数の乱数』を生成します。 

  • RAND関数『=RAND()』
  • RANK.EQ関数『=RANK.EQ(数値,参照,[順序])』

RANK.EQ関数の『数値』部分にはRAND関数が入っているセルが入るよ!

例えば『=RANK.EQ(B2,$B$2:$B$51)』は、B2の値はB2からB51の中で何番目かという意味になるよ!

Dr.オフィス

Dr.オフィス

今回は『1~50の数字の中で乱数を生成する』とルールを決めます。

手順は以下の通りです。

  1. RAND関数で乱数を50個生成する
  2. 生成した乱数にRANK.EQ関数を使って順位付けする
  3. 順位付けした数字を乱数として扱う

順位付けした数字自体を「乱数」と考えれば、必ず整数となります。

それでは実際に重複しない乱数を作っていきましょう!

実際に重複しない乱数を生成してみよう!

  1. STEP

    乱数を生成したいセルをクリック

    セルを選択する
    セルを選択する

    乱数を生成したいセルを選択します。

  2. STEP

    RAND関数を設定する

    RAND関数を設定する
    RAND関数を設定する

    乱数を生成するために『=RAND()』と入力し関数を設定しましょう。

  3. STEP

    オートフィルして50個のセルにRAND関数を作る

    オートフィルする

    50個のセルにRAND関数を設定するためにオートフィルをします。

    50個のセルにRAND関数を設定することで『1~50』の数字の順位付けができるようになるよ!

    Dr.オフィス

    Dr.オフィス

  4. STEP

    任意のセルにRANK.EQ関数を設定する

    RANK.EQ関数を入力する

    D2を選択し『=RANK.EQ(B2,$B$2:$B$51)』と入力します。

    『$』は絶対参照の記号だよ!$をつけないとオートフィルをするときにセルの範囲が変わってしまうので必ず絶対参照で範囲を指定しよう!

    Dr.オフィス

    Dr.オフィス

  5. STEP

    RANK.EQ関数で順位を表示できた!

    順位を利用して乱数を表示できた

    順位を表示することで整数の乱数として生成できました。

  6. STEP

    乱数が必要な分だけ、オートフィルして乱数を生成する

    RANK.EQ関数をオートフィルする

    RANK.EQ関数は乱数が必要な分だけあればよいので必要数をオーフィルします。

    例えば1から50の数字の中で5つだけ乱数を生成したい場合はRANK.EQ関数は5つあれば大丈夫!

    乱数が必要な分だけオートフィルしよう!

    Dr.オフィス

    Dr.オフィス

  7. STEP

    もっと大きな数でも乱数を生成できる!

    大きな数字でも乱数は作れる

    もっと大きな数字で乱数を生成したい場合はRAND関数のセルを多くして、その分RANK.EQ関数の範囲を広げましょう。

    1. RAND関数を100個設定して乱数を作る
    2. RANK.EQ関数の範囲をRAND関数を設定したセルの個数に拡大する

    RAND関数は操作が発生するたびに、数字が更新されてしまうよ!

    数字が変わると困る場合は、RAND関数を固定しよう!

    Dr.オフィス

    Dr.オフィス

乱数を重複しないで生成する方法に関するQ&A

Q

RAND関数を固定するにはどうすればよいの?

A

こちら≫【エクセル】乱数を生成する方法!以外と使える便利技の中で解説しています。是非参考にしてください。

Q

大きな整数で乱数を生成する方法はを教えてください。

A

この記事内の≫実際に重複しない乱数を生成してみよう!のSTEP7で解説しています。

エクセルの関数を利用して重複しない乱数を生成しよう!

今回は重複しない乱数の生成方法を解説しました。

重複が発生しないRAND関数を使い、さらにRANK.EQ関数で順位付けすることで整数の乱数を簡単に生成できます。

おさらい
  1. RAND関数で乱数を生成する
  2. RANK.EQ関数で生成した乱数の順位付けをする
  3. 順位付けして表示された数値を乱数として扱う

乱数を生成する関数は複数ありますが、重複してしまうのは困りますよね。

それぞれの特性に合わせて関数を設定していきましょう!

エクセルの乱数についてはこちら≫【エクセル】乱数を生成する方法!以外と使える便利技で詳しく解説しています。

関連記事