Excel(エクセル)で重複しないランダムな数字(乱数)を求める方法/Rand関数・Rank.Eq関数の組み合わせ方

games IT

Rand関数とRank.Eq関数を組み合わせると、重複しないランダムな整数を求めることができます。
ビンゴの番号など作りたい場合に使えるテクニックです。

スポンサーリンク

成果物

randb16
サンプルとして、1から50000の値が重複しない整数の並びを作ります。

重複しない乱数の求め方

0以上1未満のランダムな数字を求める
Rand()
randb1
RandBetween関数は便利ですが、このようにそこそこの頻度で値が重複します。これではビンゴには使えません。
randb2
これに対し、Rand関数ではこのように小数が文字通り桁外れで、まず重複することがありません。
randb3
なので、Rand関数を並べてその順位(この場合、A列の中で上から何番目に大きい数字か)をRank.Eq関数で求めれば、
randb4
重複しない乱数の並びが得られる、という寸法です。
randb5
これを50000行作りたいので、A1とB1をコピーしたあと、A50000に移動して、A列とB列を選択し、
randb6
Ctrl+Shift+でデータがあるところまで選択して、
randb8
貼り付けします。乱数と順位が割り振られました。
randb9
このままだと何かするたびに50000×2件の計算をすることになるので、数式タブ計算方法の設定手動に設定し、自動で再計算されないようにします。
randb10
作った乱数表に重複の削除を実行すると、
randb12
重複しない乱数表が作れていることが確認できました。
randb13
B列の乱数をRank.Eq関数からただの整数にしたいので、C列に値をコピーし、
randb14
A列とB列を削除したら完成です。
randb15
作業が完了したら、計算方法を忘れずに自動に戻しておきます。

他の方法

Excel(エクセル):ランダム、乱数
Excelの乱数、ランダム関連操作、関数等まとめです。 乱数の作成 関数で乱数を求める場合、Rand関数(0~1の乱数)またはRandBetween関数(指定範囲の整数)を用います。 もしビンゴで使うような重複...

コメント