• ベストアンサー

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

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

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

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

関数「rand」と「int」などが使えます。 数字が43種類なので、rand()の値を1/43で割った整数部分を取って、ランダムな数字として生成できます。これだと6つの数字が互いに重複することがあるので「countif」などを使って重複した組み合わせを除外してください。結果を並び替えしてみると分かりますが、6つの数字の組み合わせが重複することは稀です(一等?の当選確率とほぼ同じ確率です)。私が生成したランダムな組み合わせも貼っておきます。 4 24 29 18 21 8 1 34 33 21 24 3 20 15 22 3 6 30 27 23 28 1 20 19 42 24 27 21 9 31 19 4 27 8 16 5 37 33 39 23 16 17 43 29 24 23 37 30 38 5 32 27 33 35 24 21 32 38 27 29 40 27 2 13 29 3 9 38 15 28 10 43 39 18 35 28 30 26 10 8 11 9 33 31 8 28 5 41 18 19 33 4 22 43 14 24 22 4 12 5 24 18 10 18 16 20 7 39 33 24 7 42 30 32 28 38 26 12 29 42 27 28 34 18 22 43 9 43 17 11 22 3 3 5 8 7 27 17 35 22 3 10 5 30 30 39 23 31 17 13 36 27 37 40 3 9 11 37 26 9 6 2 26 33 12 5 43 11 15 38 20 26 2 6 25 20 1 4 15 14 5 18 13 41 43 1 26 24 43 22 39 32 19 10 4 25 32 30 37 15 23 12 2 18 16 5 20 34 12 27 38 15 19 25 20 35 16 19 13 2 21 40 11 43 8 12 28 39 4 36 42 16 27 37 17 27 36 41 37 42 17 13 39 9 12 15 41 12 20 5 10 3 40 8 25 12 42 23 2 26 7 37 22 40 24 43 3 31 34 21 10 15 39 30 14 19 20 16 9 32 22 15 20 33 42 35 19 4 12 11 22 13 4 5 8 43 34 21 12 39 6 4 39 29 19 42 15 33 32 37 29 19 43 16 26 6 4 9 23 27 24 13 41 43 10 19 7 41 25 34 6 41 36 19 10 1 30 1 11 12 20 34 39 43 29 21 1 28 25 28 9 30 10 20 10 33 2 34 30 22 6 1 10 41 2 11 34 37 32 21 1 38 33 19 27 35 43 39 6 20 7 39 23 26 42 31 18 3 26 39 20 29 25 11 1 41 16 4 19 24 41 33 32 21 13 36 25 3 18 41 7 12 26 8 42 25 12 5 14 7 15 23 11 7 9 30 27 32 42 28 30 21 24 7 31 13 40 4 27 1 13 37 33 36 1 16 9 42 25 37 40 9 8 18 16 5 43 18 39 40 34 6 38 26 5 1 3 40 36 5 3 8 30 14 21 17 37 7 4 26 26 15 24 20 41 7 26 32 29 37 10 11 41 21 9 43 26 16 13 10 20 24 25 1 38 29 19 30 15 3 8 16 6 43 30 21 6 26 25 10 30 28 41 5 36 17 34 43 5 30 35 8 23 1 34 19 9 20 11 6 5 6 25 26 37 30 25 9 30 22 36 34 28 36 4 7 26 35 34 4 22 13 26 27 23 3 10 6 27 14 7 31 21 20 29 41 3 1 6 13 26 20 5 15 31 1 19 34 7 34 22 42 29 18

honeyuz
質問者

お礼

回答ありがとうございました。 しかし、数式?の入力方法がわかりません・・・・。 もう少し、勉強が必要ですね。 実際に作っていただいた組み合わせを参考にさせていただきます。

その他の回答 (1)

  • soixante
  • ベストアンサー率32% (401/1245)
回答No.2

関数では思いつかずにマクロでやってみました。 もっと詳しい方が、スマートな方法をご提示くださるかもしれません。 ----------------------------------------------------- Sub LOTOSIX() Dim r As Long, c As Integer Dim i As Integer, j As Integer, k As Integer Dim LstRow As Integer Dim Rng As Range Dim Flg As Boolean Flg = True r = 2 c = 1 Cells.ClearContents Do While r <= 101 With Cells(r, 1) .Value = r - 1 .Font.ColorIndex = 5 End With '6つのランダム数字を振る For c = 2 To 7 Cells(r, c).Value = Application.WorksheetFunction.RoundUp(Rnd() * 43, 0) Next c Set Rng = Range(Cells(r, 2), Cells(r, 7)) Rng.Sort _ key1:=Cells(r, 1), _ Order1:=xlAscending, _ Orientation:=xlLeftToRight '同じ行に同一数値が無いかの判定 For c = 2 To 6 If Cells(r, c).Value = Cells(r, c + 1).Value Then Rng.ClearContents Flg = False Exit For End If Next c 'この数値の6つが今までに出た組み合わせでないか判定 For k = r - 1 To 2 Step -1 i = 1 For c = 2 To 7 If Cells(r, c).Value <> Cells(k, c).Value Then i = i * 0 End If Next c If i = 1 Then Rng.ClearContents Flg = False Exit For End If Next k '両方OKの場合次へ If Flg = True Then r = r + 1 ElseIf Flg = False Then Flg = True End If Loop Set Rng = Nothing End Sub ----------------------------------------------------- これを実行すると、B列からG列に、重複の無い組み合わせが出ます。 BからGに昇順に並びます。 もしマクロの使用法が分からない場合はお知らせください。

honeyuz
質問者

補足

回答いただいてから時間が経ってしまって申し訳ありません。 ・・・・マクロの使い方が分からないです。 関数や数式、マクロにしても、このセルに「○○」と入力。 その次にこのセルには「△△」と入力。 ・・・などど、手順を細かく教えていただけるとありがたいです。 無知で申し訳ありません。

関連するQ&A

専門家に質問してみよう