こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

ロト6の組み合わせ・・・・
1~43までの数字から6つの数字を選ぶ。

それを100通り作りたいんですが、関数や数式など、方法を教えてください。
100通りの組み合わせはすべて異なる組み合わせにしたいです。

よろしくお願いします。

投稿日時 - 2010-06-06 13:46:25

QNo.5948745

暇なときに回答ください

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

関数「rand」と「int」などが使えます。
数字が43種類なので、rand()の値を1/43で割った整数部分を取って、ランダムな数字として生成できます。これだと6つの数字が互いに重複することがあるので「countif」などを使って重複した組み合わせを除外してください。結果を並び替えしてみると分かりますが、6つの数字の組み合わせが重複することは稀です(一等?の当選確率とほぼ同じ確率です)。私が生成したランダムな組み合わせも貼っておきます。

4242918218
1343321243
2015223630
27232812019
42242721931
194278165
373339231617
432924233730
38532273335
242132382729
4027213293
93815281043
391835283026
1081193331
8285411819
33422431424
2241252418
10181620739
33247423032
283826122942
272834182243
9431711223
35872717
3522310530
303923311713
3627374039
113726962
26331254311
1538202626
2520141514
5181341431
262443223932
19104253230
37152312218
16520341227
381519252035
16191322140
11438122839
43642162737
172736413742
17133991215
4112205103
40825124223
2267372240
24433313421
101539301419
20169322215
20334235194
1211221345
84334211239
6439291942
153332372919
431626649
232724134143
10197412534
6413619101
30111122034
39432921128
25289301020
10332343022
611041211
34373221138
331927354339
6207392326
42311832639
20292511141
16419244133
32211336253
1841712268
4225125147
1523117930
273242283021
2473113404
27113373336
1169422537
409818165
43183940346
382651340
365383014
2117377426
26152420417
263229371011
41219432616
13102024251
38291930153
8166433021
62625103028
41536173443
530358231
3419920116
5625263730
25930223634
2836472635
34422132627
2331062714
73121202941
316132620
5153111934
73422422918

投稿日時 - 2010-06-06 14:44:44

お礼

回答ありがとうございました。

しかし、数式?の入力方法がわかりません・・・・。

もう少し、勉強が必要ですね。

実際に作っていただいた組み合わせを参考にさせていただきます。

投稿日時 - 2010-06-21 22:00:13

このQ&Aは役に立ちましたか?

13人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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に昇順に並びます。

もしマクロの使用法が分からない場合はお知らせください。

投稿日時 - 2010-06-06 15:13:33

補足

回答いただいてから時間が経ってしまって申し訳ありません。

・・・・マクロの使い方が分からないです。

関数や数式、マクロにしても、このセルに「○○」と入力。
その次にこのセルには「△△」と入力。
・・・などど、手順を細かく教えていただけるとありがたいです。

無知で申し訳ありません。

投稿日時 - 2010-06-21 21:56:08

あなたにオススメの質問