• ベストアンサー

エクセルで条件付きランダム化を行う方法

はじめまして。 エクセル初級者です(2007ユーザー)。 なるべくマクロ関数を使わずに、条件付きのランダム化をする方法を探しています。 具体的には、1~5の数字をランダムに並べる際、1度も重複せずに並べたいと思っています。  例) 5, 3, 2, 4 ,1  / 2, 1, 4, 3, 5 などなど どうもラテン方陣というものを作るのが1番早いようですが、 今一つ作り方が分かりません。 上記どちらでもかまいませんので、もしご存知の方がいらっしゃいましたら教えてください。 よろしくお願いします。

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

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

よく使われる簡単な方法をひとつ。 A1からA5に =RAND() を並べる C1に =RANK(A1,A:A) を記入し,C5までコピーする。 F9を押す都度再計算される。 また必要に応じてC列セルをコピーし,形式を選んで貼り付けで値のみ貼り付けて値化する。

A1_to_Z100
質問者

お礼

早速ありがとうございました。 今やってみて、独りで感動しました!

A1_to_Z100
質問者

補足

ただ、すみません。 ランダム化した列を複数作りたいので、 教えて頂いた方法で作った列を複数コピーすればよいと思ったのですが、 それだと行に重複した数字が来てしまうこともありますよね? やはりラテン方陣(縦横の数値が重複しない5 * 5の正方形)である必要があるので、 教えて頂いた方法だとそれが難しそうです。 せっかく教えて頂いたのに、私の理解が足りず申し訳ありません。

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 力技ですが、まず、適当な列(例えばSheet2のA列)に、予め次の様に入力しておきます。 Sheet2の A1セルに  1,2,3,4,5 A2セルに  1,2,3,5,4 A3セルに  1,2,4,3,5 A4セルに  1,2,4,5,3 A5セルに  1,2,5,3,4 A6セルに  1,2,5,4,3 A7セルに  1,3,2,4,5 A8セルに  1,3,2,5,4 A9セルに  1,3,4,2,5 A10セルに  1,3,4,5,2 A11セルに  1,3,5,2,4 A12セルに  1,3,5,4,2 A13セルに  1,4,2,3,5 A14セルに  1,4,2,5,3 A15セルに  1,4,3,2,5 A16セルに  1,4,3,5,2 A17セルに  1,4,5,2,3 A18セルに  1,4,5,3,2 A19セルに  1,5,2,3,4 A20セルに  1,5,2,4,3 A21セルに  1,5,3,2,4 A22セルに  1,5,3,4,2 A23セルに  1,5,4,2,3 A24セルに  1,5,4,3,2 A25セルに  2,1,3,4,5 A26セルに  2,1,3,5,4 A27セルに  2,1,4,3,5 A28セルに  2,1,4,5,3 A29セルに  2,1,5,3,4 A30セルに  2,1,5,4,3 A31セルに  2,3,1,4,5 A32セルに  2,3,1,5,4 A33セルに  2,3,4,1,5 A34セルに  2,3,4,5,1 A35セルに  2,3,5,1,4 A36セルに  2,3,5,4,1 A37セルに  2,4,1,3,5 A38セルに  2,4,1,5,3 A39セルに  2,4,3,1,5 A40セルに  2,4,3,5,1 A41セルに  2,4,5,1,3 A42セルに  2,4,5,3,1 A43セルに  2,5,1,3,4 A44セルに  2,5,1,4,3 A45セルに  2,5,3,1,4 A46セルに  2,5,3,4,1 A47セルに  2,5,4,1,3 A48セルに  2,5,4,3,1 A49セルに  3,1,2,4,5 A50セルに  3,1,2,5,4 A51セルに  3,1,4,2,5 A52セルに  3,1,4,5,2 A53セルに  3,1,5,2,4 A54セルに  3,1,5,4,2 A55セルに  3,2,1,4,5 A56セルに  3,2,1,5,4 A57セルに  3,2,4,1,5 A58セルに  3,2,4,5,1 A59セルに  3,2,5,1,4 A60セルに  3,2,5,4,1 A61セルに  3,4,1,2,5 A62セルに  3,4,1,5,2 A63セルに  3,4,2,1,5 A64セルに  3,4,2,5,1 A65セルに  3,4,5,1,2 A66セルに  3,4,5,2,1 A67セルに  3,5,1,2,4 A68セルに  3,5,1,4,2 A69セルに  3,5,2,1,4 A70セルに  3,5,2,4,1 A71セルに  3,5,4,1,2 A72セルに  3,5,4,2,1 A73セルに  4,1,2,3,5 A74セルに  4,1,2,5,3 A75セルに  4,1,3,2,5 A76セルに  4,1,3,5,2 A77セルに  4,1,5,2,3 A78セルに  4,1,5,3,2 A79セルに  4,2,1,3,5 A80セルに  4,2,1,5,3 A81セルに  4,2,3,1,5 A82セルに  4,2,3,5,1 A83セルに  4,2,5,1,3 A84セルに  4,2,5,3,1 A85セルに  4,3,1,2,5 A86セルに  4,3,1,5,2 A87セルに  4,3,2,1,5 A88セルに  4,3,2,5,1 A89セルに  4,3,5,1,2 A90セルに  4,3,5,2,1 A91セルに  4,5,1,2,3 A92セルに  4,5,1,3,2 A93セルに  4,5,2,1,3 A94セルに  4,5,2,3,1 A95セルに  4,5,3,1,2 A96セルに  4,5,3,2,1 A97セルに  5,1,2,3,4 A98セルに  5,1,2,4,3 A99セルに  5,1,3,2,4 A100セルに  5,1,3,4,2 A101セルに  5,1,4,2,3 A102セルに  5,1,4,3,2 A103セルに  5,2,1,3,4 A104セルに  5,2,1,4,3 A105セルに  5,2,3,1,4 A106セルに  5,2,3,4,1 A107セルに  5,2,4,1,3 A108セルに  5,2,4,3,1 A109セルに  5,3,1,2,4 A110セルに  5,3,1,4,2 A111セルに  5,3,2,1,4 A112セルに  5,3,2,4,1 A113セルに  5,3,4,1,2 A114セルに  5,3,4,2,1 A115セルに  5,4,1,2,3 A116セルに  5,4,1,3,2 A117セルに  5,4,2,1,3 A118セルに  5,4,2,3,1 A119セルに  5,4,3,1,2 A120セルに  5,4,3,2,1  次に、ランダムな値を表示させるセルに、次の関数を入力して下さい。 =INDEX(Sheet2!$A:$A,INT(RAND()*120)+1)

A1_to_Z100
質問者

お礼

ご丁寧に全ての並び順を挙げて頂きありがとうございます。 INDEXという関数があるのですね。 初めて知りました。 ご尽力に感謝いたします。

関連するQ&A

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

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

  • 【エクセル】ランダムで重複しない整数を出したい。

    Windows 7、エクセル2007です。 ランダムで重複しない整数を任意の範囲から一部のみ入力するにはどうしたら良いでしょうか? 1.任意の範囲「1~50」とか「1~100」とか「15~300」とかから、20個だけとか40個だけとか。 2.ランダムなので「2,6,3,4,8,1・・・」とかのn、n+1、n+2ではないランダムな整数。 3.重複しないこと。 上記1~3を満たしたやり方ってありますか? 出てこない数があっても良いんです。 例えば、1~10までの範囲でランダムに3個だけセルに入力したいとき。 A1に7、A2に4、A3に9というふうに。 それが1~300の範囲で50個の数字をランダムに重複しないように入力する。 A1に15、A2に163、A3に92、・・・A50に43。 残りの250個の数字は入力されないという感じです。 乱数だと重複します。 ランク(順位)と組み合わせると、連続(n、n+1、n+2)になってしまいます。 列はどこでも良いんですが、行は連続したいです。 A1~A50とか、A1~A300とか。 関数の組み合わせでできないでしょうか? また、マクロは分からないので、詳しく解説して頂けると助かります! 情報が不足する点がありましたら指摘して下さい。 追加します。

  • Excel2002 ランダムに並べ替える関数

    Excel2002で掛算九九の100マス計算を作っています。 マクロを使って、ボタンにマクロを登録し、九九の問題を作成したいのです。 1~10の数字をランダムに重複しないように、A1:J1に表示したいです。 A B C D E 1 9 7 8 1 2・・・ 2 2 3 8 4 1 5 4 でA1:J1の1~10の数字ををランダムに並び替えたいのですが、そういった関数はありますか? RANDBETWEEN関数を使ってみたんですが、重複する数字が返ってきてしまいます。 何か良い方法はありますか?

  • エクセル関数?でランダム入力について

    エクセルにて質問です。 一つのシートで横列(アルファベット)は同じで、縦列(数字)は二列ずつのセットで… もしセル R11に何もなければ(空欄なら)→ A11からBP12までのセルを薄い灰色で塗りつぶす もしセル R11に何かあれば→ Y11に15~22までのランダムの数字 Z11に0~59までのランダムの数字 BC11に8~11までのランダムの数字 BD11に0~59までのランダムの数字 ……… ……… ……… もしセル R39に何もなければ(空欄なら)→ A39からBP40までのセルを薄い灰色で塗りつぶす R39に何かあれば→ Y39に8 Z39に0~59までのランダムの数字 BC39に12~17までのランダムの数字 BD39に0~59までのランダムの数字 というものを作成したいのです。 尚、ランダム数字の値は上記の様に変更可能なものを希望です。 上記の内容になりますと、複数セルの塗りつぶしが含まれるので関数だけでは無理でしょうか? また、マクロ使用で可能ならコードを教えてもらえたら助かります。 エクセルに詳しい方おしえてください。 よろしくお願いします。

  • 関数 ランダム 指定した条件

    よろしくお願いします! =INT((10-1+1)*Rand()+1) のようにすれば、1~10までのランダムな数字が入力できる訳ですが、例えば2,3,5,7のように指定した数字からランダムで入力(選択)させることを関数を使って行う事は出来るのでしょうか? マクロを使わないと無理でしょうか? 全く別件ですが、Rand()の()内に何か入力して使う機会というのはあるのでしょうか?

  • エクセル関数で任意抽出して、ランダム利用するには?

    Visual Basic の知識が無いので、エクセル関数に限定して教えて欲しいのですが、 (例) (1)ロト6の予想システムを表計算でしたい。使用数字は、1~43 (2)セルB1~C43までの表がある (3)B1~B43には1~43の数字 (4)C1~C43には、独自の予想法により、関数で絞り込んだ数字の隣に◎、候補以外は空白 (5)◎がついた候補数字のみを、ランダムで6個抽出する関数を設定したい フィルタ機能を使って、データ抽出する「マクロボタン」の登録とかでもやってみたのですが、 最後のランダムで抽出する段階で、わからず手詰まりになってしまいます。 良い方法がありましたら、是非教えて下さい。お願いします。

  • ランダムに出てくるデータの抽出

    こんにちは。 マクロ初心者です。     A  B  C  D  E  F  G 1  あ  あ  う  う  う  え  お   2  あ  あ  い  い     い  お 3  い   4      5  う        お 6  う        お 7      8  あ  お  え  え  え  お 9  あ     い     う  え  お 10   お  い  い  い  え 上記のような表があるとき。 1の行には「あ・う・え・お」 2の行には「あ・い・お」 3の行には「い」 4の行には「データなし」 5の行には「う・お」 6の行には「う・お」 7の行には「データなし」 8の行には「あ・え・お」 9の行には「あ・い・う・え・お」 10の行には「い・え・お」 このように、『行ごとに何のDataが存在しているかを取り出す』ようなマクロを組みたいのです。 関数でも可能だと思うのですが、出来るだけエクセルシートの容量を減らしたいのでマクロで組みたいと考えています。 このデータは、上記の例では5個ですが、1000個ぐらいあり全てランダムに出てきます。 何か条件が付いているデータの抽出という質問は、よく見かけるのですが、 このように何を条件とすれば良いのかわからない場合は、どのようにすれば良いのでしょうか。 どのようにマクロを組んだら良いかわからず困っています。 何卒アドバイスをお願いします。  

  • エクセルで数字をランダムに出す方法

    実はナンバーズ3の予想数字と適当に出しただけの数字との当選率を比較する為にエクセルでランダムに数字を出したいのですが条件があります。 ・3桁の数字であること。 ・3桁のランダム数字は指定した数の分だけ出せる(例えば3桁の予想数字が20個あれば、こちらも20個出せる) ・同じ3桁の数字が2個以上出ないこと。 可能なら、やり方を教えて下さい。

  • Excel で 10個のセルに、0から9を一つ一つランダムに表示したい

    子供の算数の問題を作成するために考えているのですが、Excel で10個のセルに、0から9を一つ一つランダムに表示したいのです。ただ、一度使用した数字は、二度と使用しないようにするためにいい方法はないでしょうか。 例1 2.5.8.6.3.9.7.4.1.0 例2 1.4.7.2.0.5.8.3.6.9 など、乱数等を使用した方がいいと思うのですが、if関数は、最大7つまでしか、判断だきないそうです。 ランダムであり、一度使用した数字は、使用せず、0から9をそれぞれ表示する方法は、ないでしょうか。 よろしくお願いします。

  • エクセルでランダムな座席表を作成したい

    excel 2003を使用しています。 エクセルで、100名程度の座席表を作成したいと思っています。 今、机の絵をレイアウトどおりに表示させて、該当する机に社員番号を入れれば、社員名が表示されるように設定しています。 席替えを毎日行うので、1-100の数字をランダムかつ重複せずに入れて、簡単に座席変更をしたいのですが、方法がわかりません。RANDBETWEENだと、ランダムに数字が入りますが、重複してしまい、困っております。 ランダムに数字を入力でき、かつ重複しない方法を教えてください。 どうぞよろしくお願いいたします。

専門家に質問してみよう