ハマっている「お菓子」を教えて!

乱数を発生させる関数で、RAND関数は、小数点(0~1の間)で、RANDBETWEEN関数は整数で出るとのことですが、RANDBETWEEN関数は同じ数字がいくつか重複して出ます。整数で同じ数が出ないようにする関数はないでしょうか?

A 回答 (4件)

そういう関数はありませんが,そういう数字を簡単に並べる方法は沢山あります。




たとえば1から10をランダムに並べるなら。

方法1
A1:A10に =RAND() を記入しておく
B1に =RANK(A1,A:A) と記入し,B10までコピーする。
F9を押すたびに何度でも順序が入れ替わる。


方法2
A1:A10に =RAND() を記入しておく
B1:B10に 1から10までの数字を記入しておく
A列昇順で全体を並べ替える。何度でも。


方法3:
エクセルのオプションで反復計算のチェックを入れ,回数を10000回ほどにしておく
A1に =IF(AND(A1<>0,COUNTIF($A$1:$A$10,A1)=1),A1,RANDBETWEEN(1,10)) と記入し,
A10までコピー貼り付ける。
    • good
    • 2
この回答へのお礼

返事が遅くなって申し訳ありません。乱数を発生させて、重複しない数字を入力する方法をいくつか紹介していただき、ありがとうございました。
早速試してみたところ、どれも簡単にうまくできるので助かりました。
今後とも、よろしくお願いします。

お礼日時:2012/02/05 16:53

例えばA1セルからA11セルに間に10から20までの数値を重複することなく表示させるとしたら、例えばC1セルに =RAND() と入力してC11セルまでオートフィルドラッグコピーします。

これは10から20までの数値ですので11行を必要とします。
次にA1セルには次の式を入力してA11セルまで下方にオートフィルドラッグコピーします。

=RANK(C1,C$1:C$11)+9

9の数字はRANK関数では1から11までの数値が得られますので10から20までの数値にするためにプラスしています。
勿論、A1セルからA11セルに1から11までの数値を表示させるのでしたら+9は必要ありません。
    • good
    • 0
この回答へのお礼

返事が遅くなって申し訳ありません。乱数を発生させて、重複しない数字を入力する方法を紹介していただき、ありがとうございました。
早速試してみたところ、簡単にうまくできるので助かりました。
+9の部分も教えていただいて、感謝しています。
今後とも、よろしくお願いします。

お礼日時:2012/02/05 16:54

出にくくするには下記の式でできます。

RANDと現時間を乗算して適当な位置の数字を
取り出すというものです。
ここで最後の)前の1は1ケタです、必要な桁数を入れます。
=MID(RAND()*NOW(),3,1)
    • good
    • 0
この回答へのお礼

返事が遅くなって申し訳ありません。乱数を発生させて、重複しない数字を入力する方法を紹介していただき、ありがとうございました。
早速試してみたところ、簡単にうまくできるので助かりました。
今後とも、よろしくお願いします。

お礼日時:2012/02/05 16:54

》 整数で同じ数が出ないようにする…



その「整数」の範囲を示してください、0や負数もありかどうかも含めて。
    • good
    • 0
この回答へのお礼

返事が遅くなって申し訳ありません。回答をよせていただきありがとうございました。「整数」の範囲は、この時は1~100くらいまでのイメージで質問しました。説明不足ですみません。その後、1~の範囲では教えていただきました。もし、0やマイナスの範囲まで広げるやり方をご存じでしたら、(もしご都合がよければで結構です)教えてください。
今後とも、よろしくお願いします。

お礼日時:2012/02/05 16:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報