• ベストアンサー

エクセルで、乱数の関数 同じ数が無いように

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

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

そういう関数はありませんが,そういう数字を簡単に並べる方法は沢山あります。 たとえば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までコピー貼り付ける。

060527qaid
質問者

お礼

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

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

例えば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は必要ありません。

060527qaid
質問者

お礼

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

  • acha51
  • ベストアンサー率41% (436/1042)
回答No.3

出にくくするには下記の式でできます。RANDと現時間を乗算して適当な位置の数字を 取り出すというものです。 ここで最後の)前の1は1ケタです、必要な桁数を入れます。 =MID(RAND()*NOW(),3,1)

060527qaid
質問者

お礼

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

noname#204879
noname#204879
回答No.1

》 整数で同じ数が出ないようにする… その「整数」の範囲を示してください、0や負数もありかどうかも含めて。

060527qaid
質問者

お礼

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