エクセルバージョン
マイクロソフト365
本日は重複しない乱数(ランダムな数値)を作成していきます。
SORTBY関数とSEQUENCE関数とRANDARRAY関数でスピルさせて使用できるので便利だと思います。
【完成後】
B1セルの値に何個の数値を作成するかを指定するだけで、A列に重複しないランダムな数値がスピルします。
※この機能はバージョンがスピル機能やSORTBY関数やSEQUENCE関数やRANDARRAY関数が搭載している、マイクロソフト365のようなバージョンでしか動作しませんのでご注意ください。
簡単なのでサクッと行きますね~(*^^)v
それではいってみましょう!
重複しない乱数の作成手順
・SEQUENCE関数で重複しない連番の配列を作成します。
・RANDARRAY関数で乱数の配列を作成します。
・SORTBY関数で乱数配列を基準に、連番配列を連動で並び変えて完成します。
大まかにこんな感じで即出来上がります(^o^)o
重複しない乱数サンプル
下記の図のようにB1セルの数値を変更で、A列に重複しない乱数がスピルします。
A1セルにコピぺ → =SORTBY(SEQUENCE(B1),RANDARRAY(B1))
オートフィルとか一切いりません。
あとはB1セルの値を変更するだけで、100個だろうが10000個だろうが100000個だろうが、一瞬で重複しない乱数がA列に自動で作成されるので楽チンです!
完成です\(^^)/
【解説】
➀SORTBY関数の引数の配列(第1引数)に、SEQUENCE関数で重複のない配列の連番を作成します。
➁SORTBY関数の引数の基準配列1(第2引数)に、RANDARRAY関数で乱数の配列を作成します。
すると➁の乱数の配列が昇順に並び変わり、それに連動して①の重複のない配列の連番が並び変わりスピルします。
【完成】
B1セルの値に何個の数値を作成するかを指定するだけで、A列に重複しないランダムな数値がスピルして完成です\(^^)/
本当に重複してないの~?を確認する場合は下記の関数をC1セルにコピペします。
=SORT(UNIQUE(A1#))
まとめ
スピルと新しい関数は使い方によっては今回のように非常に便利に機能し時短が可能になります。
VBAのChangeイベントを使用してるみたいでいい感じです。
スピルおそるべしっ…(^o^)o
以上です。