ラベル rand関数 の投稿を表示しています。 すべての投稿を表示
ラベル rand関数 の投稿を表示しています。 すべての投稿を表示

7/06/2022

Excel関数辞典 VOL.65。RAND関数~RANDBETWEEN関数【dictionary】

Excel関数辞典 VOL.65。RAND関数~RANDBETWEEN関数

<Excel関数>

今回は、QUARTILE.INC関数~RADIANS関数までをご紹介しております。

RAND関数

読み方:ランド

読み方:ランダム

RAND()

0以上1未満の範囲で乱数を発生させる 



RANDARRAY関数

読み方:ランドアレイ

読み方:ランダムアレイ

RANDARRAY([行],[列],[最小],[最大],[整数])

乱数の配列を返す 



RANDBETWEEN関数

読み方:ランダム ビトウィーン

読み方:ランドビトウィーン

RANDBETWEEN(最小値,最大値)

指定した範囲で整数の乱数を発生させる 


Excelには、乱数を発生することができる、関数があります。

RANDARRAY関数は、Excelのバージョンによっては、無い場合もあります。

2/28/2020

Excel。RANDARRAY関数は、行列いっぺんに大量のサンプルデータをつくれます【RANDARRAY】

Excel。RANDARRAY関数は、行列いっぺんに大量のサンプルデータをつくれます

<RANDARRAY関数・RAND関数・RANDBETWEEN関数>

サンプルデータを作るときに、便利な関数が増えました。それが、RANDARRAY関数
Office365 Insiderで追加された新関数です。

通常ではあまり使うことはないかもしれませんが、大量なサンプルデータをつくるには、もってこいの関数です。

いままでだと、RAND関数や、RANDBETWEEN関数を使ってサンプルデータをつくっていましたが少々面倒だったのです。

例えばRAND関数ですが、0~1までの小数をランダムで発生することができる関数です。

確かに小数なのでほぼ一致しない数値を算出しないので、重複にならないサンプルデータを作る場合には都合がいいのですが、小数なので、どうやって整数化するのか、RANK.EQ関数で整数化するなど、あの手この手を使う必要が発生します。

そのため、大量のサンプルデータを作るには、少し不向きでした。

A1には、
=RANDBETWEEN(1,3)
という数式が設定してあります。

今回は、1~3までの整数値をランダムで発生する設定にしてあります。

このRANDBETWEEN関数は、指定した範囲の整数値を算出してくれますが、オートフィルで数式をコピーするために、行か列の一方向にしか、数式をコピーすることができません。

そこで、新しくサンプルデータを作る関数『RANDARRAY関数』は、行も列も引数内で設定できる。

しかも整数か小数かも選択することができる便利な関数なのです。

それでは、RANDARRAY関数を使ってみましょう。
 
RANDARRAY関数は、直接入力して作成するほうが作成しやすいと思いますので、今回はダイアログボックスではなくて、直接関数を入力していきます。

RANDARRAY関数の引数は、行・列・最小・最大・整数と5つ用意されています。

今回は、1~100までの整数を2行5列の10個のサンプルデータを作ってみます。

行には、2
列には、5
最小には、1
最大には、100
整数には、TRUE。整数値を選択します。

数式を確定すると、Office365 InsiderのExcelには、スピルという機能が追加されていますので、オートフィルで数式をコピーする必要もなく、自動的に、2行5列の表内でサンプルデータを作成してくれました。

A1の数式は、
=RANDARRAY(2,5,1,100,TRUE)

A2の数式も、
=RANDARRAY(2,5,1,100,TRUE)
となっていますが、数式バーの数式をみると、文字の色がグレーになっていますよね。

このグレーが、スピルで対応したということがわかるようになっています。

偶然ですが、今回は、B1とC1の結果が同じになっています。

RANDARRAY関数も当然のことながら、重複しますので、重複を避ける場合には、小数にしてRAND関数同様に、思考する必要があります。

最近、色々と新しい関数や機能をExcelに追加されていますので、確認してみると、意外と使えるものがあるかもしれませんね。

5/01/2016

Excel。ABC。アルファベットをランダムで重複しないで設定する方法


Excel。アルファベットをランダムで重複しないで設定する方法

<RAND+RANK.EQ+CHAR関数>


ちょっと前に、数値をランダムで、しかも重複しないで設定する方法をご紹介したところ、

「これ、数値じゃなくて、アルファベットのA~Zで振ることってできないですかね?」

というリクエストをいただきまして。なるほど、ちょっと考えてみますということで、
今回は、前回ご紹介した方法にプラスアルファして、
アルファベットをランダムで重複しないで設定する方法をご紹介しちゃいます。

途中までは、前回ご紹介したものと同じになるのですが…

まずは、下記のように作りたいわけですね。

では、まずは準備から行っていきます。下記のような算出する表を作っていきます。

E列は、スタッフ名
F列には、ランダムで算出した整数値を算出させます。ここは、RAND関数の登場ですね。
F3には、=RAND ()という数式が設定されています。

前回もご紹介しておりますが、RANDBETWEEN関数では、整数値でしかも、
重複をしてしまいます。そこで、小数点でのランダム数値を算出するRAND関数を使えば、
まだ重複する率は緩和されるので、このF列にはRAND関数を使ってとりあえず、
ランダムの数値を算出させたわけですね。

続いてG列ですが、F列で算出された数値の順位を算出するために、
まずは、RANK.EQ関数を使って順位を算出させます。

数値には、F3。
参照には、$F$3:$F$12。絶対参照を忘れてはいけませんね。
オートフィルで数式をコピーすると絶対参照をしないと、参照範囲がずれてしましますので、
忘れずに設定します。

順序は、0。

これで、OKボタンをクリックします。

ここまでの数式は、

=RANK.EQ(F3,$F$3:$F$12,0)


これで完成ではありません。ここからが今回のポイント。
アルファベットにするために加工をする必要があります。

文字には、それぞれ、文字コードが振られていますので、
アルファベットのAは、65という文字コードをもっています。

そこで、ここで算出された順位に【+64】すれば、
65という数値を作り出すことができますので、数式を次のように加工します。

=RANK.EQ(F3,$F$3:$F$12,0)+64


その結果が、G列のプラス64の列の数値なのです。

そして、その数値をアルファベットに変更させますので、
H列には、CHAR関数を使っていきます。
H3には、

=CHAR(G3)

という数式を設定してあげます。

あとは、オートフィルを使って数式をコピーしましょう。

これで、割り当ての列が算出することが出来ましたね。

このようにしてあげれば、
今回のリクエストのアルファベットで重複しないで設定することが出来ますので、
何か機会がありましたら、使ってみてはどうでしょうかね?

ちなみに、aは97なので、+96しれあげれば、
小文字のアルファベットで算出することもできますよ。

4/14/2016

Excel。Lottery。くじ引き番号。ランダムの数値を重複させない簡単な方法


Excel。くじ引き番号。ランダムの数値を重複させない簡単な方法

<RAND関数&RANK.EQ関数>


先日知り合いの方の講師の先生から、席替えをするんだけど、
番号を重複しないで振る方法って何かないかなぁ~とのこと。

なんでも、RANDBETWEEN関数を使うと、重複しちゃって、
しかも、削除をしたり、文字を追加したりなどすると、コロコロ変わっちゃって、
数値が固定されないので、困っているというもの。

確かに、RANDBETWEEN関数は、重複を防ぐことが出来ないんですよね。

便利そうなんだけど、ちょっと不便。

ランダム数が少ない場合は、「自力で」でもいいのですが、増えてくるとやっぱり、
面倒くさくなるし、重複を見逃しちゃうかもしれないし。

ということで、今回は、重複しないランダム数値の設定方法をご紹介していきます。

まず、下記の表があります。

こういう表を作りたい訳ですね。

では、RANDBETWEEN関数だとどうなるのかを確認してみましょう。

C3をクリックして、RANDBETWEEN関数ダイアログボックスを表示しましょう。

最小値は1
最大値は10
と入力してOKボタンをクリックしましょう。オートフィルで数式をC12までコピーしましょう。

すると、ランダムで1~10までの数値が振られてはみたものの…やっぱり重複している。

これでは、自力で何とかしないといけないわけです。

けど、面倒なので何かいいアイディアはないですか?という訳ですね。

そこで、重複するかもしれないけれど、重複しないような関数があるのです、

それは、RAND関数。


この関数は、小数点第7位までをランダムで表示する関数なのですが、
小数点第7位までならば、ほぼ重複することはないので、今回はこのRAND関数と、
順位を出す、RANK.EQ関数のコンビネーション技で、
重複しないランダムの数値を算出する方法をやってみましょう。

D2にRANDと入力して、
D3に、

= RAND()

と入力して、オートフィルでD12まで数式をコピーします。

まず、RAND関数を作って、ランダムな数値を算出させます。

そして、この数値の順位を算出すれば、1~10までの重複しない数値を算出できるという訳です。

なお、D列は再計算され続けますので、気にせず、
C3にRANK.EQ関数を作っていきますので、
RANK.EQ関数ダイアログボックスを表示しましょう。

数値はD3
参照は、$D$3:$D$12
順序は、昇順でも降順でも構わないので、今回は0にしておきます。

あとは、OKボタンをクリックしましょう。オートフィルを使って数式をC12までコピーします。

これで、重複しないランダムな数値を作ることができました。

が、D列が固定していないので、値の貼り付けを使って、数値を固定化します。
D3:D12を範囲選択して、コピーします。

貼り付けボタンから、値を選択します。すると、数式ではなく値に代わりました。

これで、C列の数値は変わることが無くなりましたので、このようにすれば、
重複しないランダムな数値を作ることが出来ますので、何か機会がありましたら、
やってみると面白いですよ。