• ベストアンサー

EXCELで乱数表示に条件を加えたいのですが...

1から10までの数をA1~A10のセルに重複なしでランダムに表示する際に, 今まで,RAND関数,RANK関数,RANDBETWEEN関数,sortedlistクラスなどを使っていました. そこに,A1には2はダメ!,A2には4はダメ! … というように,各セルで表示される数を制限 した下でランダム表示したいのですが,どのようにすればいいか思いつきません... 良い考えがあれば,是非教えて下さい.お願いします.

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

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

作業列を使って対応します。 A1セルからA10セルに1から10までの数値をランダムに並べるとして、B列にはA1セルが2はだめとするならB1セルに2、A2セルが4はだめとするならB2セルに4と入力します。他の条件の場合のB列のセルにその数値を入力します。 C1セルには次の式を入力してC10セルまでドラッグコピーします。 =RAND() D1セルには次の式を入力してD10セルまでドラッグコピーします。 =IF(RANK(C1,C$1:C$10)=B1,0,RANK(C1,C$1:C$10)) その後にA1セルには次の式を入力してA10セルまでドラッグコピーします。 =IF(SUM(D$1:D$10)=55,D1,"") これでD列での合計が55の場合にはA1セルからA10セルには1から10までの数値がランダムに表示されます。 B列で制限された数値を考慮した数値がランダムに表示されます。 表示されない場合にはF9キーを押してください。

Mai_yu_
質問者

お礼

回答、ありがとうございました。 この方法だと制限を増やしてもできそうですね。 この方法は考え付きませんでした。 とても参考になりました。

その他の回答 (3)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

失礼。 乱数の範囲は1~10でしたね。 C列の式を↓にしてください。 =RANDBETWEEN(1,9)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

こんなのは? 乱数は整数で、範囲は0~100のとします。 B列にはその行でNGな数字を入れておきます。 C列には↓の式を入れ、0~99の範囲の乱数を発生させます。 =RANDBETWEEN(0,99) A2に↓の式を入れます。 =C2+IF(C2>=B2,1,0) 本来の範囲(0~100)より1小さい範囲(0~99)の乱数を発生させ、その乱数がNGな数値以上の場合+1しています。

Mai_yu_
質問者

お礼

回答、ありがとうございます。 このようにして、特定の数値を外す方法があったんですね。 とても参考になりました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

2はダメ!という場合はランダムにはなりませんが、 =IF(RANDBETWEEN(0,10)=2,RANDBETWEEN(0,1),RANDBETWEEN(3,10))

Mai_yu_
質問者

お礼

回答、ありがとうございます。 IF文を使う方法がありましたか…。 参考になります。

関連するQ&A

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

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

  • エクセルで3ケタの乱数

    今度くじ引き大会をするのに3ケタの数字を250名ほどに配りたいのですが、それぞれの数字が重複なくかつ各桁数の数字が重複しないで乱数をエクセルで生成する方法を教えてください。(例えば、101,221,199などは除外したいです) RAND,RANDBETWEEN関数を使ってみましたが、重複してしまうし、221などのような各桁で数字が重複してしまうものができてしまうのでうまくいきません。 よろしくお願いします。

  • エクセル 任意の数字から始まる重複しない乱数

    お世話になります。 エクセル2003/XP 使用です。 RANK関数またはそれに似た利用方法でご教授願いします。 下記ページを参考に、"重複しない乱数”を作成しました。 http://www.relief.jp/itnote/archives/001798.php (ページ中程、▼操作手順:重複しない乱数を作成する 以下の部分) 乱数の最初の数字が1から始まる分には問題なくできるのですが、 乱数の数字を、「任意の数字から始めて」、 「任意の数字で終わる」ようにすることは可能でしょうか? 例えば、下記の例でいうと、 6から始まり10で終わる乱数です。        A列     B列 1行目 / =RAND() / 1-5の範囲でランダムな重複しない乱数 2行目 / =RAND() / 同上 3行目 / =RAND() / 同上 4行目 / =RAND() / 同上 5行目 / =RAND() / 同上 ------------------------------------------------------------ 6行目 / =RAND() / 6-10の範囲でランダムな重複しない乱数 7行目 / =RAND() / 同上 8行目 / =RAND() / 同上 9行目 / =RAND() / 同上 10行目 / =RAND() /同上 (11以下、繰り返し 略) よろしくお願いします。

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

    エクセル2000ユーザーです。ランダム関数を使い、重複を許さない5桁のランダム数字を1000個作りたいと思っています。randbetween関数を使おうと思ったのですが、2000では使えないのか、NAMEといったエラー表示がでます。5桁の中は同じ数字がでてきても構いません。例:11295、43634、70676・・・etc。 が、1000個の中では同じ数字が重複しないようにしたいです。 =RIGHT(RAND(),5) のように考えたのですが、他にいい方法はありますでしょうか? マクロやVBAは苦手なので、できれば関数でいいやり方があれば教えてください。

  • Excelでロト6の数字を決めたい

    Excel関数を使って、「1~43の数字から重複しない6個の数字を算出する」方法ってありますか?マクロはよくわからないので関数で出したいです。いろいろ調べて、「RAND」とか「RANDBETWEEN」を使うといいとわかったのですが、「重複しない」ようにすることができません。お分かりになる方いらしたら、ぜひ教えて下さい。ずっと考えていたら頭が痛くなってきました・・・。

  • 条件付で乱数をセルに入力したい。

    =CHOOSE(RAND()*3+1,"+","-","×") 上記で表示させた+-×でマイナスのときだけ0から20までの整数(ランダムに)、+、-の時は、0から10までの整数(ランダムに)をセルに入れたい。

  • エクセルでランダム表示したい

    エクセルのセルA1からセルA20までとか「MM/DD/YYYY hh:mm:ss」の形式でランダム表示させる関数なんてあるでしょうか? できれば、3月1日~5月31までとか期限を制限してランダムに表示できたらうれしいです。

  • [Excel]2つの条件がある重複しない数字

    Excelで書類を作っています。 行き詰ってしまったので、どなたか教えてください! よろしくお願いいたします。 1~100の範囲(この範囲は1~3000まで変化します)で、重複しないランダムな数字をRANDやRANKを使って表示させました。 下記の例は5個表示させています。 表示数は1~50まで変化します。 ここまではできました。 問題はその右側の列に、左側の列と同じ条件の範囲で、しかも左側の列と重複しない数字を2個表示させるというのはできますでしょうか? こちらも表示数は1~50まで変化します。 1 100      5    2  1   1    ☆  2  18    ☆  3  38  4  62  5  98  6  7  8  9  ・  ・ 50

  • エクセルで乱数を作成する

    たとえば、 A1~A1000に0から始まる9桁の数字を入力したとき、 B1に、B1~B1000内で重複しない、4桁の英数文字を表示させたいのです。 マクロは使わず関数で4桁の英数文字をランダムで表示させることは可能でしょうか? よろしくお願いいたします。

  • Excelでのランダムな整数の出し方

    A1のセルに、ルーレットのようにランダムな整数を 表示させたい時は、 =INT(RAND()*10) という関数を使うのだと思いますが、 これだと0~9までが均等に出現しますよね。 A1には、0,1,2の3つのみを ランダムに出現させたい、という場合は どのように設定すればいいのでしょうか? 宜しくお願いします。

専門家に質問してみよう