残業を減らす!Officeテクニック
ダミーデータ生成が捗る! Excelの新関数「RANDARRAY」で簡単に乱数を生成
スピルに対応し、従来の関数「RAND」や「RANDBETWEEN」を代替する便利な関数
2022年1月31日 06:55
今回は、Office 2021、Microsoft 365で利用可能な新関数「RANDARRAY」を紹介します。乱数を生成できる関数ですが、スピルに対応しており、従来の関数よりも操作を省略可能。サンプルデータを作成する際などに重宝します。ひたすらデータをコピー&ペーストしていると感じた時などに思い出してください。基本の動作は単純です。さっそく使ってみましょう。
※本稿の内容は「Office Professional Plus 2021」で動作確認しています。
乱数を発生する「RANDARRAY」
「乱数」とは規則性のないランダムな数値のことです。くじ引きや単純なシミュレーションなどを再現する際に利用します。従来の関数「RAND」や「RANDBETWEEN」に代わるのが「RANDARRAY」(ランダム・アレイ)です。構文は以下の通り。5つの引数は、名称そのままの役割なので理解しやすいと思います。
引数[行数]と[列数]により、「○行○列」の乱数を発生させるかを指定可能。[最小値][最大値][乱数の種類]を省略すると、「0」~「1」の範囲で実数(小数)の乱数が発生します。例えば「=RANDARRAY(10,5)」と入力してみます。スピルに対応しているので、セルA1に数式を入力するだけで、10行5列の乱数が発生します。
なお、[行数]と[列数]も省略すると、従来のRAND関数と同じく1行1列の1つのセルに乱数が発生しますが、これではRANDARAAYを使う意味はありません。
だから何? と思われるでしょうが、これがRANDARAAY関数の最も単純な形です。今度は、10~90の整数値で乱数を発生させ、そのデータを元にグラフを作成してみます。入力する数式は「=RANDARRAY(8,5,10,90,TRUE)」です。
上の例ではグラフを作成済みなので、乱数の発生と同時にグラフが作成されました。RANDARAAY関数はスピル対応なので、100行100列などの乱数も1つの数式を入力するだけで発生させることができます。ヒストグラムや分布図などのサンプルデータにも応用可能ですよね。
「RANDARRAY」と「SORTBY」を組み合わせてデータをシャッフルする
既存のデータの順番をシャッフルしてランダムに入れ替えたい! といった場合にもRANDARRAY関数が使えます。以前に紹介した新関数「SORTBY」と組み合わせます。
B列に入力された氏名をランダムに入れ替えます。入力する数式は「=SORTBY(B1:B20,RANDARRAY(20,1))」です。並べ替えの基準値をRANDARRAY関数で指定することでシャッフルできる仕掛けです。20行1列(20,1)の指定がポイントです。[列数]の「1」を省略して「RANDARRAY(20)」としても構いません。
「RANDARRAY」などのスピルに対応する関数の結果は動的配列になります。特に「RANDARRAY」の結果は都度書き換わります。「値」として固定したい場合は、コピー→[値]として貼り付け、の処理を忘れないようにしましょう。