- ベストアンサー
エクセルで条件付きランダム化を行う方法
はじめまして。 エクセル初級者です(2007ユーザー)。 なるべくマクロ関数を使わずに、条件付きのランダム化をする方法を探しています。 具体的には、1~5の数字をランダムに並べる際、1度も重複せずに並べたいと思っています。 例) 5, 3, 2, 4 ,1 / 2, 1, 4, 3, 5 などなど どうもラテン方陣というものを作るのが1番早いようですが、 今一つ作り方が分かりません。 上記どちらでもかまいませんので、もしご存知の方がいらっしゃいましたら教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
よく使われる簡単な方法をひとつ。 A1からA5に =RAND() を並べる C1に =RANK(A1,A:A) を記入し,C5までコピーする。 F9を押す都度再計算される。 また必要に応じてC列セルをコピーし,形式を選んで貼り付けで値のみ貼り付けて値化する。
その他の回答 (1)
- kagakusuki
- ベストアンサー率51% (2610/5101)
力技ですが、まず、適当な列(例えば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)
お礼
ご丁寧に全ての並び順を挙げて頂きありがとうございます。 INDEXという関数があるのですね。 初めて知りました。 ご尽力に感謝いたします。
お礼
早速ありがとうございました。 今やってみて、独りで感動しました!
補足
ただ、すみません。 ランダム化した列を複数作りたいので、 教えて頂いた方法で作った列を複数コピーすればよいと思ったのですが、 それだと行に重複した数字が来てしまうこともありますよね? やはりラテン方陣(縦横の数値が重複しない5 * 5の正方形)である必要があるので、 教えて頂いた方法だとそれが難しそうです。 せっかく教えて頂いたのに、私の理解が足りず申し訳ありません。