Excelでランダムな数字を抽出かつ重複なし・指定の数字を除外する方法

未分類

Excelで数字(連続する数字)をランダムで抽出かつ重複、指定の数字を除外する方法のご紹介です。

今回は1~10の数字をランダムで表示する方法で以下の3つの工程に分けてご紹介します。

  • 指定した数字を重複させない
  • 指定した数字を抽出
  • 指定の数字を除外

この方法のレベルとしては、Vlookup関数の使い方がわかる方であれば難しくありません。
それでは行きましょう。

指定した数字を抽出(重複しない)方法

まずは1~10を各セルに記載します。

指定した数字を抽出(重複しない)方法①の図

今回1~10でしたが、好きな数字や文字などにも変更することで抽出するものを変更する事ができます。

次に、隣の列にRAND関数を設定します。
使い方は=RAND()とセルに入力すればOKです。

指定した数字を抽出(重複しない)方法②の図

更にとなりの列にRANK関数を設定します。
RANK関数は数値にRAND関数を入力してある各セル、範囲は1~10のRAND関数が設定されているセル範囲を選択します。
範囲は絶対参照にします。

下図が参考になるかと思います。

指定した数字を抽出(重複しない)方法③の図

これで、重複しない仕組みができました。

RANKBETWEEN関数を使わない理由

1~10など決まった数値で番号を付けたい場合、RANKBETWEENという便利な関数があります。
しかし、RANKBETWEEN関数は式の構造上「重複する可能性が高いこと」と「指定した数字を除外できない」というデメリットがあるため、今回は使用しません。

指定した数字を抽出方法

使用する関数はINDEX関数・MATCH関数・MAX関数の3つの関数を使用する事で抽出することができます。計算式は以下の図のようになります。
この場合、RANK関数の最大値10のところの数字を抽出します。

F9(もしくはFnキー+F9)で更新する度に、数字が変わる事がわかるかと思います。

指定の数字を除外

最後に指定した数字を除外する方法です。
これはCountif関数を使用して、Countifでヒットしたものを除外するという方法を行います。
除外するにはまず、下図のように除外用の列を設けます。

10を除外するように設定します。
10を除外列のセルに記入しておきます。

先ほど抽出するようにした式を以下のように修正します。
※除外できる数字の列は多めに設定しています。

COUNTIF関数は除外する数字があるかどうかを判定しています。
ある場合は0にし、ない場合はRANK関数の数字をかけて計算しています。

配列数式ですので、式を決定する際はCtrl + Shift + Enterで確定します。

以上で設定終了です。

まとめ

いかがでしたでしょうか。
ポイントはRAND関数とRANK関数を使って、ランダムで抽出できるようにする事です。
そして、COUNTIF関数を使って、除外する数字を判定し除外することがポイントです。

これができると、ビンゴマシンやくじ引きなどをExcelの関数だけで作れるようになりますよ。

コメント