人に聞けない痔の悩み、これでスッキリ >>

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

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

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

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

関数「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
    • good
    • 4
この回答へのお礼

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

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

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

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

お礼日時:2010/06/21 22:00

関数では思いつかずにマクロでやってみました。


もっと詳しい方が、スマートな方法をご提示くださるかもしれません。

-----------------------------------------------------
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/21 21:56
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelでロト6の数字を決めたい

Excel関数を使って、「1~43の数字から重複しない6個の数字を算出する」方法ってありますか?マクロはよくわからないので関数で出したいです。いろいろ調べて、「RAND」とか「RANDBETWEEN」を使うといいとわかったのですが、「重複しない」ようにすることができません。お分かりになる方いらしたら、ぜひ教えて下さい。ずっと考えていたら頭が痛くなってきました・・・。

Aベストアンサー

A1に=randbetween(1,43)
B1に=randbetween(1,43)
...
F1に=randbetween(1,43)

A2に=countif($A$1:$F$1,"="&a1)
B2に=countif($A$1:$F$1,"="&b1)
...
F2に=countif($A$1:$F$1,"="&f1)

G2に=if(sum(A2:F2)=6,"OK",)

と入力してください。つまり、A1からF1に同じ数字がなければ
G2にOKと表示されます。

あとは、適当な回数だけファンクションキーF9を押してください。
シートが再計算され、乱数が更新されます。
OKと表示されたときの数字を使ってください。

QExcelですべての組合せ(重複組合せ)を出力するには?

Excelですべての組合せ(重複組合せ)を出力するには?

次の条件のような場合、Excelですべての組合せ(重複組合せ)をVBAで出力するにはどうしたらいいのでしょうか?

10種類のお菓子の中から、好きなものを3個選んでセットにするとします。
同じものを複数選ぶのはありですが「菓子A、菓子B、菓子C」と「菓子B、菓子C、菓子A」は選んだ順が違うだけで同じ組合せなので、どちらか片方だけにします。

この場合、すべての組合せの数は Excelの関数で求めることができるようで COMBIN(10+3-1,3) = 220 通りあることまではわかりましたが、このすべての組合せの一覧をどのようにして出力したらいいのかがわかりません。

いろいろ検索した結果、順列という方法は見つかりましたが、重複組合せでの方法は見つけることができませんでした。
また、Accessを使っても似たようなことができるのでしょうか? 直積?

できれば、3個固定ではなく5個の場合も出来るとうれしいです。
よろしくお願いします。

Aベストアンサー

>同じものを複数選ぶのはありですが「菓子A、菓子B、菓子C」と「菓子B、菓子C、菓
つまり「菓子A、菓子A、菓子A」も「菓子A、菓子A、菓子B」もあり ですね。
№2さんのコードをお借りして
Sub Test()
  Dim myStr As Variant
  Dim rowX As Long
  Dim i As Long, j As Long, k As Long
  Const MaxNum = 10

  myStr = Split("A B C D E F G H I J")
  rowX = 1
  For i = 0 To MaxNum - 1
    For j = i To MaxNum - 1
      For k = j To MaxNum - 1
        Cells(rowX, 1).Value = myStr(i)
        Cells(rowX, 2).Value = myStr(j)
        Cells(rowX, 3).Value = myStr(k)
        rowX = rowX + 1
      Next k
    Next j
  Next i
End Sub

>同じものを複数選ぶのはありですが「菓子A、菓子B、菓子C」と「菓子B、菓子C、菓
つまり「菓子A、菓子A、菓子A」も「菓子A、菓子A、菓子B」もあり ですね。
№2さんのコードをお借りして
Sub Test()
  Dim myStr As Variant
  Dim rowX As Long
  Dim i As Long, j As Long, k As Long
  Const MaxNum = 10

  myStr = Split("A B C D E F G H I J")
  rowX = 1
  For i = 0 To MaxNum - 1
    For j = i To MaxNum - 1
      For k = j To MaxNum - 1
       ...続きを読む

QExcelでの全通りの組み合わせ出力方法(文字列)

Excelについて全くの初心者で、教えて頂きたい質問があります。

Excelの文字列の全通りの組み合わせを出力がしたいのですが、その方法が分かりません。
例えばセルAに
・りんご
・みかん
・いちご

セルBに
・だいこん
・キャベツ
・トマト

があり、別のセルにその全通りの組み合わせを出力
(文字と文字の間はスペース)

りんご だいこん
りんご キャベツ
りんご トマト
みかん だいこん
みかん キャベツ
みかん トマト
いちご だいこん
いちご キャベツ
いちご トマト

この様に出来る方法はあるでしょうか?
また出来ればその裏(だいこん りんご)も出力したいと考えており、キーワードは3つまで出来るようになりたいです。

どなたかご存じでしたら、ぜひお教え下さい。
よろしくお願いします。

Aベストアンサー

A列B列は1行目からデータがあるものとします。
C列に転記するものとします。

以下の手順をおためしください。

1.Altキー+F11キーでVisualBasicEditorを呼び出します。

2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。

Sub test01()
a = Cells(Rows.Count, "A").End(xlUp).Row 'A列最終行取得
b = Cells(Rows.Count, "B").End(xlUp).Row 'B列最終行取得
For i = 1 To a '1行からA列最終行まで繰り返し
For n = 1 To b '1行からB列最終行まで繰り返し
x = x + 1
Cells(x, "C") = Cells(i, "A") & " " & Cells(n, "B") 'C列に結合して転記
Next n
Next i
End Sub

3.Alt+F11キーでワークシートへもどります.

4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行

これでできます。
これがわかれば「裏」というのも簡単ですよね。
以上はVBAでの回答ですが、外していたらごめんなさい。

A列B列は1行目からデータがあるものとします。
C列に転記するものとします。

以下の手順をおためしください。

1.Altキー+F11キーでVisualBasicEditorを呼び出します。

2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。

Sub test01()
a = Cells(Rows.Count, "A").End(xlUp).Row 'A列最終行取得
b = Cells(Rows.Count, "B").End(xlUp).Row 'B列最終行取得
For i = 1 To a '1行からA列最終行まで繰り返し
For n = 1 To b '1行...続きを読む

Qエクセル指定した範囲からランダムで一つ抽出

エクセルの関数についての質問なのですが、

B1~B5に値がならんでいたとして、B1~B5の中からランダムに一つ抽出したものをA3に表示する関数はありますか?

Aベストアンサー

A3に次の式を入力すればよいでしょう。

=INDEX(B1:B5,RANDBETWEEN(1,5))

QエクセルでnCr (組み合わせ)の作成方法

どなたかご存じでしたら回答願います。
ミニロトとロト6をエクセルを使用して予想に利用しております。
その中で知りたいのは、下記の場合のエクセルVBAのソースです。

●知りたいこと。

(1)ミニロトの場合は、31個から5個全てが一致すると一等ですが、
 「25個から5個選択した場合の組み合わせ(25C5)」作成方法

(2)ロト6の場合は、43個から6個全てが一致すると一等ですが、
 「24個から6個選択した場合の組み合わせ(24C6)」作成方法。

●入力

(1)ミニロトの場合は、下記のように5×5マスに重複しない数字が入っています。
  数字は毎回変わります。
  1   2 5 6 7
10 4 11 13 15
8 9 17 21 28
14 16 18 20 25
19 22 23 24 27

(2)ロト6の場合は、下記のように6×4マスに重複しない数字が入っています。
  数字は毎回変わります。

  1   2 5 6 7 19
10 4 11 13 5 22
8 9 17 21 28 23
14 16 18 20 25 24

●出力

  VBAを実行すると、新シートにそれぞれ、25C5又は、24C6の全組み合わせが出力される。

【注意事項】
   ・使用しているエクセルは2010です。

以上、ご回答よろしくお願いします。

どなたかご存じでしたら回答願います。
ミニロトとロト6をエクセルを使用して予想に利用しております。
その中で知りたいのは、下記の場合のエクセルVBAのソースです。

●知りたいこと。

(1)ミニロトの場合は、31個から5個全てが一致すると一等ですが、
 「25個から5個選択した場合の組み合わせ(25C5)」作成方法

(2)ロト6の場合は、43個から6個全てが一致すると一等ですが、
 「24個から6個選択した場合の組み合わせ(24C6)」作成方法。

●入力

(1)ミニロトの場合は、下記のように5×5マス...続きを読む

Aベストアンサー

過去のQ&A(参考URL)を参照なさってはいかがでしょう?

参考URL:http://oshiete.goo.ne.jp/qa/5571459.html

Qエクセルで指定した数字

エクセルで指定した数字の中からランダムで数字を6つ抽出できる方法がありますか??
たとえばロトなんですが大体数字を予想するのですが20個とかなった場合中々決めれません。
なので1,3,5,8,11,26,29,32、…この指定した数字の中からランダムで選びたいのですが。何方か教えてください。
よろしくお願いします。

Aベストアンサー

No.1です。No.2さんの方法で重複は防げるのですが、分析ツールのアドインがインストールできないのでしょうか。

アドインを使わない方法です。No.2さんのアイデアをお借りしています。

・A1からA20に、20個に絞った数字を入力していきます。

・B1に
=RAND()
という数式を入力します。

・B1のセルを選択し、セルの右下の辺りにマウスを近づけると、マウスポインタが細い+型に変わるので、そこでマウスをクリックして、B20までドラッグしてコピーします。B1からB20まで1未満の乱数が並びます。

・C1のセルに以下の式を入力し、配列数式なので Ctrl+Shift+Enterで確定します。
=INDIRECT("A"&LARGE((B$1:B$20<=SMALL(B$1:B$20,6))*ROW(B$1:B$20),ROW()))
配列数式なので、数式バーの数式が{}で囲まれるのを確認してください。

・B列と同様に、C1セルをC6までコピーします。

これで、C1からC6に重複なくA列の数値を抽出できます。F9を押すたびに値は変化します。

No.1です。No.2さんの方法で重複は防げるのですが、分析ツールのアドインがインストールできないのでしょうか。

アドインを使わない方法です。No.2さんのアイデアをお借りしています。

・A1からA20に、20個に絞った数字を入力していきます。

・B1に
=RAND()
という数式を入力します。

・B1のセルを選択し、セルの右下の辺りにマウスを近づけると、マウスポインタが細い+型に変わるので、そこでマウスをクリックして、B20までドラッグしてコピーします。B1からB20まで1未満の乱数が並びます。

...続きを読む

Qエクセルで「1~15」の乱数表を作りたい。

エクセルで、「1」から「15」までの15種類の数字を使ってランダムの数列表を作りたいのですが、どのようにすればできますか?

その際、各数字はそれぞれ1個ずつ、一つのセルに入れるものとします。重複しても構いません。
例えば「7」「2」「9」「13」「2」「4」「1」「9」・・・でもOKです。
また、同じ数字が連続するケースの発生もOKです。
例えば、「3」「8」「14」「6」「6」「5」「7」・・・でもOKです。2連続だけでなく、3連続もOKです。

要は「1~15の数字のランダムな出現による乱数表」が作成できればいいのです。

表の範囲は「A7~IV200」までです。

PCの初心者ですので、詳しく丁寧に教えて頂ければ有り難いです。
例えば次のように・・・。

1.・・・・・・・・・
2.・・・・・・・・・・・・
3.・・・・・・・・
4.・・・・・・・・・・・・・・
5.・・・・・・・・・

と、いう風に、順を追ってウィザード風に書いて頂ければ・・・と思います。
PCやエクセルや関数に詳しい方、宜しくお願いいたします。

エクセルで、「1」から「15」までの15種類の数字を使ってランダムの数列表を作りたいのですが、どのようにすればできますか?

その際、各数字はそれぞれ1個ずつ、一つのセルに入れるものとします。重複しても構いません。
例えば「7」「2」「9」「13」「2」「4」「1」「9」・・・でもOKです。
また、同じ数字が連続するケースの発生もOKです。
例えば、「3」「8」「14」「6」「6」「5」「7」・・・でもOKです。2連続だけでなく、3連続もOKです。

要は「1~15の数字...続きを読む

Aベストアンサー

(1) A7からIV200までを範囲指定
(2) 数式バーに「=RANDBETWEEN(1,15)」(「」は不要)を入力し、「Ctrl」キーを押しながら「Enter」

その前に、「ツール」メニューから「アドイン」の「分析ツール」にチェックを入れておいてください。

参考URL:http://www.relief.jp/itnote/archives/001184.php

Qエクセルでロトくじのクイックピックを作るには?

乱数に関する既出の質問と回答を読んでみました。恥ずかしながら余りに高度で私には分かりませんでした。

行いたい作業は1以上43以内の重複しない整数の乱数を4個(6個)発生させ昇順に並べる。です。「重複しない」と「昇順」ができません。

手順を教えていただければあとは自助努力でがんばろうと思っています。

Aベストアンサー

こんにちは。

=RAND() をコピーして43個にして、A1:A43 にして、

それを

B1 から、
=RANK(A1,$A$1:$A$43)

のようにすれば、重複が発生しない数が出てきますので(例外はあるけれど)、

こんどは、C1から、

=SMALL($B$1:$B$6$,ROW())

と、6個取り出すとか、4個取り出せばよいとは思います。

(注意:Excelのワークシートで「乱数発生」として、RAND 関数はちゃんと、2147483648 種の乱数を発生できるのですが、ワンステージで乱数の発生は 32768 種しかありません。つまり、乱数ジェネレータで一回の乱数系列を発生させて、それを使うと意外にも少ないことが分かります。そのために、本来は、VBAで、乱数ジェネレータを、RANDOMIZE関数で初期化しなければいけません)

本来は、統計的な処理したほうがよいかと思います。相当に難しそうです。ところで、このロト6などで、生計を立てている人が世の中にはいるようですね。とても驚きました。

Qロト6で9個の数字を全通り購入するには84通りになりますが、それをダブ

ロト6で9個の数字を全通り購入するには84通りになりますが、それをダブらないようにする為に9つの数字を入力するだけで、84通りの6つの数字を選択できるようにエクセルにて作成する事は出来るのでしょうか?
当方はエクセルに関しましては、語句等の理解に対しましては初心者であります。

ご教示頂ければ幸いです。
よろしくお願い致します。

Aベストアンサー

数学で順列、組合せ、というのをやったかと思います。
「excel 順列 組み合わせ」で検索してみてください。

ちなみに、ロト6は1から43のうち6つを選ぶ組み合わせなので、
43C6=6096454通りです。
84通りx 200円=16800円で数億当ったら胴元が大赤字です。

QExcelでデータ全通り組み合わせ出力方法

Excelでデータ全通り組み合わせ出力方法について教えて頂けますと助かります。

セルA~Eに、数がまちまちのアイテム名が入っています。
(セルA~Eというのは例で、変則的に全てのアイテム数は増減します。)

全ての組合せをセルG~Kに各々書き出してくれる方法はあるでしょうか?
(イメージ添付あり)

できればセルに入力すれば自動的に組合せが追加されていくのが理想です。
Excel2010を使用しており、VBAは初心者です。


どなたかご存じでしたら、ぜひお教え下さい。
よろしくお願いします。

Aベストアンサー

#1、2、cjです。#1、2、補足欄へのレスです。

取り急ぎ、コードのみ修正しました。
#2を元に書き換えています。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rSrc As Range
  Application.EnableEvents = False
  Set rSrc = Range("B2").CurrentRegion
  Application.EnableEvents = True
  If Intersect(Target, rSrc) Is Nothing Then Exit Sub
  Application.EnableEvents = False
  Call PrintCombi(rSrc)
  Application.EnableEvents = True
End Sub

Sub PrintCombi(ByVal rSrc As Range)
  Dim tnFld As Long
  Dim nRc As Long
  Dim nConti As Long
  Dim nRow As Long
  Dim i As Long
  Dim j As Long

  tnFld = rSrc.Columns.Count
  nConti = 1
  With rSrc(1, rSrc.Columns.Count + 3)
    .CurrentRegion.Clear
    Cells(1).Resize(, tnFld).Copy .Cells(1)
    For i = tnFld To 1 Step -1
      nRc = Cells(Rows.Count, i).End(xlUp).Row
      nRow = 2
      For j = 2 To nRc
        Cells(j, i).Copy Destination:=.Cells(nRow, i).Resize(nConti)
        nRow = nRow + nConti
      Next j
      nConti = nConti * (nRc - 1)
    Next i
    With .Cells(2, 1).Resize(nConti)
      For i = 2 To tnFld
        Range(.Cells(1, i), .Cells(.Cells.Count + 1, i).End(xlUp)).Copy Destination:=.Columns(i)
      Next i
    End With
  End With
End Sub

#1、2、cjです。#1、2、補足欄へのレスです。

取り急ぎ、コードのみ修正しました。
#2を元に書き換えています。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rSrc As Range
  Application.EnableEvents = False
  Set rSrc = Range("B2").CurrentRegion
  Application.EnableEvents = True
  If Intersect(Target, rSrc) Is Nothing Then Exit Sub
  Application.EnableEvents = False
  Call PrintCombi(rSrc)
  Application.EnableEvents = True
...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング