Excel関数説明スピル

Excel関数 ~RANDARRAY関数~

Excel関数説明
スポンサーリンク

Excelシート上で使える関数の使い方を説明。
今回は RANDARRAY関数 について、使い方や活用例を紹介

【本記事の目標】

RANDARRAY関数の使い方・活用方法を知ろう

 



RANDARRAY関数とは

RANDARRAY関数とは

 任意の配列の中に、任意の数値間のランダムな値を入力して表示する

という機能を持った関数です。

ランダムな値を表示する関数として RAND関数 がありますが、
そちらよりも多機能で、ただし少し複雑な関数になっています。

RAND関数については下記でも記載していますので、ご参考ください。

RAND関数は何も指定する必要はなかったですが、
RANDARRAY関数はいくつか指定する必要があります。

具体的には下記5つを指定する必要があります。

 RANDARRAY(行、列、最小、最大、整数)

詳しく説明していきます。



入力情報①、② 行、列

RAND関数はランダムな数値を1つだけ表示しましたが、
RANDARRAY関数では複数の数値を同時に表示させることができます

この『1つのセルに入力して複数のセルに結果を表示させる』機能【スピル】と言います。
【スピル】については下記記事でも説明していますので、ご参考ください。

RANDARRAY関数では1つのセルに入力しただけで、スピルにより複数のセルにランダムな値を表示させることができます。
この時に表示させる範囲を指定するのがこの「行」「列」になります。

RANDARRAY関数を入力したセルから、「行」の値だけ下に「列」の値だけ右に、行った領域にランダムな値を表示させることができます。

この「行」「列」は省略することも可能です。
その場合はどちらも「1」を入力した場合と同じ動きになります。

入力情報③、④ 最小、最大

RAND関数では「0~1の間のランダムな値」という指定がありましたが、
RANDARRAY関数ではこの「最小」「最大」に値を入力することで、
好きな数値間のランダムな値を生成することができます。

例えば、「最小」に10、「最大」に100、を入力すると、
10~100の間のランダムな値が表示されます。

この「最小」「最大」は省略することも可能です。
その場合は、「最小」は「0」、「最大」は「1」を入力した場合と同じ動きになります。
両方省略した場合は、RAND関数と同じランダムな値が表示されることになります。



入力情報⑤ 整数

ここで指定する「整数」とは、
 ランダムな値を整数で表示するか、少数で表示するか
を選択します。

RAND関数の場合は0~1の間のランダムな少数しか表示されないため、整数を表示させる場合はROUND関数等と組み合わせる必要がありましたが、
RANDARRAY関数の場合は、この「整数」で指定することで簡単に整数のランダムな値を表示させることができます。

「整数」ではBoolean値を指定する必要があります。
それぞれ
 TRUE:ランダムな値を整数で表示
 FALSE:ランダムな値を小数で表示(省略時のデフォルト)

になります。

この「整数」は省略することも可能です。
その場合は、上記に記載した通り、「FALSE」を入力した場合と同じ動きになります。
(ランダムな値を小数で表示します)



RANDARRAY関数の活用例

基本的にランダムな値を表示するという意味では、活用の場はRAND関数とほぼ同じになるかと思います。

ただRAND関数と異なって複数のセルに一括でランダムな値を表示させることができ、
かつ表示させる値の範囲も自由に指定が可能なため、簡単に複雑な動きをさせることができます。

例えば、下記記事で説明しているRAND関数を使った百マス計算の自動生成シートの場合、

下記図のように、上端は「A」のセルをコピー、左端は「B」のセルをコピーして、全てのセルに関数を入力する必要がありましたが、
RANDARRAY関数を使えば「A」のセルと「B」のセルに入力するだけで、関数のコピーは不要になります。

また、計算のレベルに合わせて表示する値を変えるため、RAND関数とROUNDDOWN関数を組み合わせてかなり複雑な式を入力する必要がありましたが、
RANDARRAY関数を使えば、表示させる値はそのまま「最小」「最大」に入力すればいいので、入力する関数を非常に簡単にすることができます。

一例として、RAND関数とROUNDDOWN関数を駆使した場合と、RANDARRAY関数を使った場合の比較を下記に記載しておきます。

●割り算レベル4:2桁を1桁で割る割り算(小数点第二位までの値で解答)
  (1~99の数値を1~9の数値で割る割り算)

 ○RAND関数とROUNDDOWN関数を駆使した場合
 A:=ROUNDDOWN((RAND()*88)+10,0)
 B:=ROUNDDOWN((RAND()*8)+1,0)


 ○RANDARRAY関数を使用した場合
 A:=RANDARRAY(1,10,1,99,TRUE)
 B:=RANDARRAY(10,1,1,9,TRUE)

コメント

タイトルとURLをコピーしました