RANDARRAY 関数について紹介します。
RANDARRAY はランダムな数値、つまり乱数の配列を返す関数です。スピル機能を使って動的配列をセルに書き出します。※「スピル」についてはこちらで解説していますのでご覧ください。
RANDARRAY 関数は、サブスクリプション版の「Microsoft 365」アプリの「Excel for Microsoft 365」と永続ライセンス版の最新版 Excel 2021で使用できます。
乱数の配列をスピルする RANDARRAY 関数の使い方について見ていきましょう。
乱数の配列をスピルする関数って何に使うんですか?
よくわからないので詳しく知りたいです。よろしくお願いしますm(__)m
【この記事でわかることは】
・RANDARRAY 関数の使用方法や使い方について解説します。
RANDARRAY 関数の構文
RANDARRAY 関数の「数式オートコンプリート」を確認してみます。
さらに、表示される引数の表示画像がこちらです。
RANDARRAY([行], [列], [最小], [最大], [整数])
引数は [ ] 全部省略可能なんですね。
RANDARRAY 関数の構文をもう少しわかりやすくしてみると次のような感じです。
引数 | 内容 | 省略した場合 |
---|---|---|
[行数] | 作成する配列の行数を指定します | (規定値) 1 行 |
[列数] | 作成する配列の列数を指定します | (規定値) 1 列 |
[最小値] | 作成する乱数の最小値を指定します | (規定値) 0 |
[最大値] | 作成する乱数の最大値を指定します | (規定値) 1 |
[乱数の種類] | 発生させる乱数の種類を倫理値で指定します FALSE = 少数を含む乱数 TRUE = 整数の乱数 | (規定値) FALSE |
RANDARRAY 関数は従来の関数「RAND」と「RANDBETWEEN」の機能をあわせ持ったうえで、スピル機能を有している便利な関数です。
「RANDBETWEEN」は、整数の乱数を発生させる関数
「RAND」は、0以上1未満の少数の乱数を発生させる関数
RANDARRAY 関数の使用例
それではさっそく使用例を見ていきましょう。
引数による動作の違い
[行数][列数]だけ指定
引数 [行数] と [列数] で乱数を発生させる範囲を指定できます。引数を指定しない場合は「規定値」が使われますので[行数=1][列数=1]となりますので、入力したセルだけに乱数が表示されます。
次の例では「=RANDARRAY(5,5)」と入力して5行5列の乱数を発生させています。セルA1に数式を入力するだけで結果がスピルされました。
省略された引数[最小値][最大値][乱数の種類]を表現すると「=RANDARRAY(5,5,0,1,FALSE)」です。0~1 の範囲で「少数を含む実数の乱数」が発生するという設定です。
なお[行数][列数]も省略し「=RANDARRAY()」とした場合、数式を入力したセル(1行1列)に乱数が発生します。この場合は従来の RAND 関数と同じですね。
[最小値][最大値][乱数の種類]も指定した例
次の画像は、5行5列に5~55の整数の乱数を発生させています。
セルの書式を見るとしっかり「整数」であることが確認できます。整数の乱数では、画像のように範囲内に同じ整数「44」や「35」が現れています。
これは、日付のシリアル値で乱数を発生させています。スピル範囲は書式を日付にして表示しています。かなりの日付が重複してします。
重複が多い理由は、乱数はセル単位で発生するためです。では、重複しないように指定範囲のデータをランダムに並べたい場合を次に紹介する方法を使います。
SORTBY 関数に組み入れてランダムに並べ替える
指定したデータの順番をランダムに並べ替えたいときは「SORTBY 関数」の引数「基準範囲」に RANDARRAY 関数 を使用します。
左側は、A列に入力された1~5の数値をランダムに入れ替えてB列に表示しています。B1セルに入力した数式は「=SORTBY(A1:A5,RANDARRAY(5))」です。並べ替えの基準値に RANDARRAY 関数で指定したことでランダムに並べ替えできています。[列数]指定の「1」は省略しています。「RANDARRAY(5,1)」としても同じです。
右側は、D1~H5に入力された1~5の数値をランダムに入れ替えて、D2~H2に表示しています。D2セルに入力した数式は「=SORTBY(D1:H1,RANDARRAY(D1:H1))」です。並べ替えの基準値に RANDARRAY 関数でセル範囲を指定してランダムに並べ替えています。「RANDARRAY(1,5)」のように [行数=1」[列数=5」と指定しても同じです。
RANDARRAY 関数使用時の留意点
「RANDARRAY」などの乱数を発生させる関数は、ワークシートが再計算されるたびに新しい乱数を返し書き換わってしまいます。
発生した乱数を固定したい場合は、「値」として保存するようにしましょう。
まとめ(おわりに)
以上、乱数を作成する RANDARRAY 関数 について、使用例を使って解説しました。
乱数を発生させる関数は、擬似サンプルデータや無作為な数値が必要な場合に利用されます。
スピル機能が無い「RANDBETWEEN関数」と「RAND関数」の場合は、数式を範囲にコピーする必要があります。でも、RANDARRAY 関数ならスピル対応なので、1000行100列などの大きな範囲の乱数も1つの数式を入力するだけで発生させることができ各種サンプルデータの作成が大幅に効率化できます。
スピルする RANDARRAY 関数ならランダムなダミーデータが一瞬で作成できます。
SORTBY 関数に使用することで、一意のデータをランダムに並べ替えたりもすることもできるので便利ですね。
私は、ダミーデータを作ることはほとんど無いけど、
SORTBY 関数を併用する方法はいろいろなことに活用できそうです(^^)
すでに使用できるバージョンのExcelユーザーのみなさんは、いろいろ試して使い方に慣れておきましょう。職場のExcelがまだ対応していないバージョンの方も、近い将来には対応するExcelバージョンにアップグレードされるはずですから。
★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★
【今後の記事について】
今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m
【検討中の今後の記事内容は・・・・】
・実務に役立つものを提供できるよう常に検討しています(^^ゞ
・その他雑記的に「プチネタなど」もいろいろ考えていきたいと思っています・・・・
・今後の記事にご期待ください(^^)/
過去記事のサンプルファイルをダウンロードできます
過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください