• ベストアンサー

Excelで乱数を使って並べ替え?

Excel2000使ってます。 宝くじ(ロト6)当選予想ソフトを作ろうと思っています。 * 6×6の表に抽出した36の数字を入力し各行・列ごとに乱数を使って並べ替える方法。又は36文字全てを並べ替える方法がわかりません。 どなたか教えて下さい。よろしくお願いします。

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

  • ベストアンサー
  • agricap
  • ベストアンサー率40% (79/195)
回答No.2

VBAを使います。 元になる数字がA1:F6に書いてあり、結果をA8:F13に作るとします。 Sub RandomSwap() 'A8:F13の範囲にコピー Range("A1:F6").Copy Cells(8, 1) '乱数系列初期化 Randomize Dim row1 As Long, col1 As Long, row2 As Long, col2 As Long Dim i As Long, j As Long 'コピー先の6×6の範囲をランダムに1000回スワップ For i = 1 To 1000 '対象セルをランダムに決定 row1 = Int((6 * Rnd) + 8) col1 = Int((6 * Rnd) + 1) row2 = Int((6 * Rnd) + 8) col2 = Int((6 * Rnd) + 1) 'スワップ j = Cells(row1, col1) Cells(row1, col1) = Cells(row2, col2) Cells(row2, col2) = j Next End Sub

osiete084
質問者

お礼

 ありがとうございました。 VBAは今やってみようと本を開いたばかりでした。  知らないことでも、やりたいことなら真剣に取り組むとなんとなく解るものですね。VBAを実行した時は感動してしまいました。  VBAって面白いものですね。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

#4のmshr1962です。すみません式を間違えました。 C1=MATCH(SMALL($A$1:$A$43,COLUMN()+(ROW()-1)*6-2),$A$1:$A$43,0) が正解です。

osiete084
質問者

お礼

 ありがとうございました。 実は、RANDを使った表は作っていましたが、なんとなくしっくりしていませんでした。今回の表は、自分で作った表と入れ替えて使わせていただきます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

ロト6だと1~43の数字の組み合わせ(順不同)ですよね。 すべての数値から同じ数値を使わない6種のデータを作るなら A1:A43に =RAND() として乱数を発生させる。 C1:H6に表を作るとして C1=MATCH(SMALL($A$1:$A$43,COLUMN()+ROW()-3),$A$1:$A$43,0) でH6までコピーする。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

「宝くじ(ロト6)当選予想」が良くわかりませんのですが、それで満たすべき条件で大きな誤解をしてる部分があるかも しれませんが、その際はご容赦を。 下記はどうですか。 A1A36に1-36の連続数字を入れる。これが不適なら、人間が手作業で適当な36個の重複しない(必要か?)をA1:A36のセルに入れる。 B列にRAND関数で数字を発生させる。 B列でソートする。 A列   B列 21 13591 17 19430 33 19726 1 11753 7 15409 5 12444 8 19134 3 12341 10 15765 19 19386 29 19584 32 12521 12 15286 11 14696 6 18247 16 14787 ・・・以下略(もちろん質問者がやっても、B列は違う荒いとなる。 したがって下記の表D1:I6も違うものになる) B列の式は=INT(RAND()*10000+9999) など。 D1:i6にA列から数字を持ってくる。 21 17 33 1 7 5 8 3 10 19 29 32 12 11 6 16 13 14 27 35 2 30 23 25 26 36 34 18 28 15 20 31 9 22 4 24 D1の式は =INDIRECT("a"&INT((ROW()-1))*6+MOD((COLUMN()-4),6)+1) これをI1まで式を複写。D1:I1をD6:I6まで式を複写。 乱数は同じ数の発生を排除しない(=発生することがある) それで欄数値で並べ替えに持ち込むのが賢明と思う。同じ値でも 順序はどうにか決まるから。

osiete084
質問者

お礼

 ありがとうございました。 関数の内容がよく分からないので勉強させていただきます。  今考えているものとは少し違うようでしたがとても参考になりました。

  • 134
  • ベストアンサー率27% (162/600)
回答No.1

乱数発生のために、B2セルに =int(rand()*35+1) と入力 A2セルに =if(countif($B$2:b2,b2)>1,"",max($a$1:a1)+1) と入力 A2とB2の関数をおおむね300行くらいコピー 6×6 の行に 1~36までの数字を入力 (例えば、F20~K25)  そして、目的とする乱数が入る6×6マスを 例えば、F3~K9として、 F3セルに =vlookup(f20,$a$2:$b$301,2,0) と入力して、K9セルまでの6×6マスに関数をコピーする なんていう方法も可能かな なんて 思いました。

osiete084
質問者

お礼

 ありがとうございました。 今回は説明が悪く、申し訳ありません。(1から43の数字から36個を選び6×6のマスに入れ乱数で並べ替えたかったのです)  とはいえ、この表もとても面白く参考にさせていただきました。

関連するQ&A

  • エクセルで乱数を作りたいのですが

    1行あたり1~100番位で乱数を作りたいのですが 各行に同じ数が入らない方法はあるでしょうか? RANDBETWEENですと同じ数字が複数入ってしまいます。 宜しくお願い致します。

  • EXCELの乱数表

    以下の作業なんですがやり方がわからないんで教えてください!お願いいたします!! 乱数表を作って、乱数表を利用し2個の数字を取り出す。(AとB) ↓ その取り出した数字を取り出した順に並べ、一つの数値とする。(AB) ↓ それらをデータXに変換する。 乱数AB |00|01~06|07~30|31~68|69~92|93~98|99 データX |-3|  -2 |  -1 |   0  |  1  |  2  |  3 ↓ 上記を繰り返し、大きさN=4の標本を100個作製する。 よろしければ以上のやり方を教えていただけると幸いです。 当方EXCEL初心者で、さっぱり困ってます!(><) よろしく願いいたします!

  • Excel のセル内の数字抽出

    セルの中にランダムの数字が入っている状態から、共通する数字を抽出する方法を教えてください。 例    A  B   C  D  E   F  G  H   I 1 228 236 246 258 241 452 785 453 741 2 478 247 236 159 147 236 478 345 236 3 222 223 445 160 401 305 360 236 474 この様な数字が1つのセルの中に入力されていて 1、236という数字がこの表の中にいくつ存在するかを抽出する方法。 2、各行・列を参照して共通する236を抽出する方法。 以上2点についてお願いいたします。

  • ロト6 ナンバーズ

    数字選択式宝くじである ロト6やナンバーズの場合 過去の膨大な当選数字から 次の当選数字を確率で予想することは可能ですか?

  • 予想数字の”○”の付け方

    どなたかご存じでしたら回答をお願いします。 数字選択式宝くじロト6、ミニロトの予想をエクセルにて行おうとしております。 予想数字として選んだ最大12個の数字を【予想数字1】に入力すると、 【予想数字2】の該当数字の下に”○”を付ける方法が知りたいです。 【予想数字1】    9 11 18 19 35 6    5 29 42 20 37 30 【予想数字2】 1 2 3 4 5 6 7 8 9 10 11 …18 19 20 … 29 30 31… 35 36 37 38 39 40 41 42 43      ○○  ○  ○  ○ ○ ○  ○ ○    ○  ○         ○ ◎注意事項  ・【予想数字1】には最大12個の数字(ミニロトであれば1~31、ロト6であれば1~43)が   重複なくランダムに入力されています。  ・【予想数字2】は、あらかじめ数字(ミニロトであれば1~31、ロト6であれば1~43)が   ふられています。  ・エクセルは2007です。 以上、よろしくお願いします。

  • エクセルで並べ替えをしたい!

     商品管理表を作りました。  A列には、00001~90000の文字列(商品ナンバー)が入力されていて、B列には、商品名、C列には、価格が表示されています。  これが100行ほど続いた後、折り返して、D列から00001~90000の文字列(商品ナンバー)、商品名、価格。また折り返して、G列から00001~90000の文字列(商品ナンバー)、商品名、価格・・・と3行にわたって入力されています。  これをA列、D列、G列に入力されている00001~90000の文字列(商品ナンバー)で並べ替えたいのです。  可能でしょうか?また、他に良い方法がございましたら、どうか教えて下さい!!!

  • ロト6の組み合わせをExcelを使って表にランダムの数字で抽出する方法

    ロト6の組み合わせをExcelを使って表にランダムの数字で抽出する方法 ロト6の組み合わせ・・・・ 1~43までの数字から6つの数字を選ぶ。 それを100通り作りたいんですが、関数や数式など、方法を教えてください。 100通りの組み合わせはすべて異なる組み合わせにしたいです。 よろしくお願いします。

  • 乱数表の定義が理解できません

    乱数表は0から9までの数字をランダムに並べた表。どの部分をとっても0~9の数字が同じ確率(1/10)で現れるように作られる。任意抽出その他標本調査や実験計画法に応用される。 と、ありますが、この確立1/10を、どう理解したら良いのでしょうか。 例えば、啓林館の乱数表で、 28 30 95 01 10 05 04 05 84 28 と、並んでいますが、一番左の数字は0が4/10出てますし, 二桁数字を考えても、05が2回出ているので、1/10にならないと思うのです。 どの部分をとっても1/10では無いと思うのですが、教科書が間違っているはずも無いですから、私の考え方がおかしいのだと思います。 どうぞ、お知恵をおかしください。

  • 「宝くじ」についてのの3つ質問

    1.ジャンボ宝くじの1等の当選確率は、どのくらい? (ロト6は知っているけど・・・) 2.大量(購入金額百万単位)に購入する方法は? (「ジャンボ宝くじ」でも「ロト6」でもok) 3.ロト6の当選金の上限が4億というのは、 法律で決まっていると聞いたことがあるけど、 4億という数字になにか根拠がある? 以上、よろしく!

  • エクセルを使っての方法

    エルセルなどを使用して、宝くじロト6過去のデータを入力して、 これから6個の数字を決めるときに、過去に出てしまった1等の数列を避ける方法を教えてください。

専門家に質問してみよう