Excel。ダブらないで1から10までをランダムで並べるにはどうしたらいい
<SORTBY+SEQUENCE+RANDARRAY関数>
参加者名簿があります。
C列の順番には、1から参加者数の10人分である10までの数値をランダムで並べたい。
しかも、1が2回登場するようなことがないように、つまり重複しないようにしたいわけです。
今回は10名なので、自力で振り分けることもできますが、件数が多くなれば、とても大変な処理になってしまいます。
何かいい方法は、ないのでしょうか。
そこで、C2に次の数式を設定してみます。
=SORTBY(SEQUENCE(10),RANDARRAY(10))
この数式で、1から10までの数値をランダムで並べ替えることができました。
使用している関数は、スピル機能対応なので、絶対参照や、オートフィルで数式をコピーする必要はありません。
この数式がどのように動くことで、1から10までの数値をランダムで並べることができるのか、関数を確認していきます。
SORTBY関数は、並べ替えをする関数です。
最初の引数は、「配列」。
2つ目の引数が「基準配列1」なのですが、それぞれ関数をつかっていますので、最初の引数で使用している
最初の引数を使用している関数は、SEQUENCE関数です。連番を作る関数です。
SEQUENCE(10) で、1から10までの連番を設定することができます
まず、重複しない1から10の数値を用意することができました。
この数値をランダムで並べ替える必要があるわけです。
そこで、RANDARRAY関数をつかって、乱数を発生させます。
小数の乱数を発生するので、算出結果が重複することは、まずありません。
この2つの関数をつかって、1から10までをランダムで並べ替えた順番をつくることができたというわけです。
なお、セルをアクティブなどするたびに、再計算されます。
説明の都合で、C列の順番を作成した後に、F列をつくっています。
そのため、F列の結果とC列の結果は合致しませんので、ご了承ください。