• ベストアンサー
  • すぐに回答を!

ランダム関数で任意の桁数のランダム数字を作りたい

  • 質問No.4485593
  • 閲覧数5918
  • ありがとう数6
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 61% (21/34)

エクセル2000ユーザーです。ランダム関数を使い、重複を許さない5桁のランダム数字を1000個作りたいと思っています。randbetween関数を使おうと思ったのですが、2000では使えないのか、NAMEといったエラー表示がでます。5桁の中は同じ数字がでてきても構いません。例:11295、43634、70676・・・etc。
が、1000個の中では同じ数字が重複しないようにしたいです。

=RIGHT(RAND(),5)

のように考えたのですが、他にいい方法はありますでしょうか?
マクロやVBAは苦手なので、できれば関数でいいやり方があれば教えてください。

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

  • 回答No.3
  • ベストアンサー

ベストアンサー率 45% (16/35)

=RIGHT(RAND(),5)
だと、末尾に0が連続するようなケースで不正な結果になってしまう可能性があります。
=RIGHT(INT(100000+100000*RAND()),5)
というのはどうでしょうか?
それから、1000/100000なので確率は低いかもしれませんが、重複はありえます。(100個に1個ぐらい)
1100個ぐらい生成して、重複するものは排除してください。
お礼コメント
xyz123hanri

お礼率 61% (21/34)

なるほど、そういう方法があるのですね。とても参考になりました!ありがとうございました。
投稿日時:2008/11/17 16:57

その他の回答 (全3件)

  • 回答No.4

ベストアンサー率 27% (4518/16136)

RAND()*(上限ー下限)+下限
です。
重複出現なしとランダム性とは関係ないことなので、別のロジックで、限りなくそれに近い方法を勉強するほか無い。
乱数理論も難しく、エクセルしか使えないレベルではそのアルゴリズムを考え出しプログラムを作るのは難しいと思う。
さらに知りたいなら、数理のカテゴリに質問して、聞いてみるとかあるかとおもう。しかし回答が出ても、その用語や理論付けなど理解できない恐れが多い。
即時(リアルタイム)でないなら、エクセルのある列に行番号とともに乱数(もちろん重複アリ)をRANDOM関数で出し、値かして式を消し、乱数の列でソートして、行番号を乱数とするのもありえる。
同じ値もソートすると、何とか別行になり、行番号は違う数値になるから。
2007で無いと6万(行)以上の場合(本件)は出来ないが。
4桁2桁でやり結合するとか。
ただし出来た数字のランダム性の数学的な検証法などはわからない。
ーー
それと、RANDBETWEENはアドイン関数
http://www.relief.jp/itnote/archives/001184.php
の>[分析ツール]に含まれる関数ですから、利用するためには[分析ツール]アドインの組み込みが必要です。
辺りに注意。
お礼コメント
xyz123hanri

お礼率 61% (21/34)

丁寧なご回答ありがとうございます。まだまだ知識不足でこれからもっと勉強します。。ありがとうございました!
投稿日時:2008/11/17 17:01
  • 回答No.2

ベストアンサー率 38% (256/672)

1000個の中で重複しないように…というのは簡単には思いつきませんでしたが、質問者さんはRANDBETWEEN関数を使って解決する方法は思いつかれているようなので、以下参考にしてもらえれば。

RANDBETWEEN関数を使って解決できるのなら、「分析ツール」アドインを組み込めば良いと思います。分析ツールが使えなければ =INT(RAND()*90000)+10000 が同じ結果になると思います。
お礼コメント
xyz123hanri

お礼率 61% (21/34)

アドインの組み込みできました。早いご回答とても感謝しています。ありがとうございました。
投稿日時:2008/11/17 16:59
  • 回答No.1

ベストアンサー率 44% (257/579)

「ツール」→ 「アドイン」→ 「分析ツール」にチェックを入れて「OK」でrandbetween関数が使えるようになると思いますけど・・・
お礼コメント
xyz123hanri

お礼率 61% (21/34)

できました!ありがとうございました。
投稿日時:2008/11/17 16:56
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ