Excelで公平に抽選を行うにはRAND関数とRANK関数を使おう!

こんにちは。Excelを使いこなす会社員、ユージーン(@Eugene_no2)です!

この記事では、ExcelのRAND関数・RANK関数を使って、公平な抽選を行う方法をご紹介します。

例えば、何かの応募者のリストの中から当選者を選んだり、多すぎるデータの中からサンプリング調査のためにランダムにデータを抜粋したい、みたいな場面。

もちろん、公平な抽選ですから、無作為でなければなりません。それ、Excelで出来るんです。

RAND関数で乱数を発生させる

RAND関数というのは、その名(ランダム)の通り、乱数を発生させる関数で、こちらの意図に関係なく、0~1の間の数字がランダムに出てきます。

=RAND() *()内は何も書かなくてOKです

まず最初のステップは、RAND関数を使って、抽選の対象となる一つ一つに乱数を発生させます

RAND関数が入った状態のセルは、例えばExcelファイルを保存したり、セルを編集したりすると再計算が行われるので、数字がどんどん変わっていってしまいます。

そこで、RAND関数で乱数を発生させたら一度、コピー→値貼り付けをして数字が変わらないようにしておくことがポイントです。

RANK関数で順位付けをする

RANK関数というのは、その他(ランク)の通り、数値の大小によって順位付けをする便利な関数です。

=RANK(数値,参照)
(訳:数値参照の中で何番目に大きいかを教えて)

続いてのステップは、先ほどRAND関数で発生させた乱数に、RANK関数で順位付けをします。

つまり、こういうこと。

ここまでやったら、もう出来たも同然です。

参考までに、RAND関数で発生させた乱数なら、ランキングに同率が生まれることはありませんが、仮に同率が生まれても、RANK関数で同じ順位が出ないようにする方法があります。

合わせて読みたい RANK関数で同じ順位が存在しないようにする方法
ExcelのRANK関数では、数値が同じなら同じ順位が返されますが、同じ順位が出てくると困ることもあります。ここでは同順位が出てこないようする方法を解説

ランキング上位者を当選者として扱う

RAND関数で発生させた乱数に、RANK関数で順位をつけたことで、抽選の対象となる一つ一つに、ランダムな整数(ランキング)が割り振られていることになります。

あとは、ランキング上位者を当選者として扱えばいいのです。

当選人数が3人なら、ランキングが1~3の人を当選者に。当選人数が10人なら、ランキング1~10の人が当選者ということです。

この順位は、もとはといえば、Excelが発生させた乱数なので、人間の意図や作為の入らない、公平な抽選結果だと言えるでしょう。

ということで今回は、Excelで公平な抽選を行う方法の解説でした。

他にも、Excelの便利な活用方法を解説していますので、よければのぞいていってください。

合わせて読みたい Excelの便利な活用術・実践的な工夫・小技まとめ
当ブログではたびたび、他のサイトには載っていないような、Excelの便利な活用方法や、実践的な工夫・小技などを紹介しています。