趣味のエクセルで当てよう!ロト・ナンバーズ

当選狙いで、ナンバーズ4をメインにロト、ビンゴ5などの各種データリストや、それらの分析用エクセルVBAなどについて書いてます。

ナンバーズ3 の 各属性(5803回)

各下表の数字は下から直近出現間隔を出しています。



合計出現間隔(合計12,13が中心)




奇数偶数(△奇数▲偶数)と大小(大□5以上、小■4以下)




ミニ(ミニプラス、ミニスペース)

ミニプラスはミニ2桁の和、ミニスペースはミニ2桁の差



集計用マクロは下表の様に出したデータの一番下から計算


エクセルマクロの配列研究3 - 趣味のエクセルで当てよう!ロト・ナンバーズ


Sub kankaku_sita_syuukei() ' 間隔を下並びで出力。整列コピーする準備
Dim j As Long, k As Long, x As Long, n As Long, d As Long
Dim nn As Long, caunter As Long, Maxx As Long
Dim setretu As Long, span As Long, writretu As Long
Dim kaigo As Long, startgyou As Long, start As Long, gyou As Long
start = MsgBox("間隔下並び集計を開始しますか?", vbYesNo)
If start = vbNo Then End
Sheets("原本").Select
caunter = 0

Range("gr10:lh7501").ClearContents '出力表示部のクリア
Call saikeisanon
kaigo = Range("l1")


Range("gi10") = "=CL3 " 'データを参照する(上の表を出している)
Range("gj10") = "=CN3 "
Range("gk10") = "=DG3 "
Range("gl10") = "=DA3 "
Range("gm10") = "=DB3 "

Range("gi10:gm10").Copy Range(Cells(11, 191), Cells(9 + kaigo, 195)) 'データを回号分コピー
Range(Cells(11, 191), Cells(9 + kaigo, 195)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Call saikeisanon
startgyou = 9 + kaigo
Call saikeisanoff '再計算を止めて計算を速くする・


For x = startgyou To 10 Step -1


 For n = 1 To 5 '
Select Case n 'データ表示列位置の設定
Case 1: span = 200 '合計
Case 2: span = 240 '奇数偶数
Case 3: span = 260 '大小
Case 4: span = 280 'ミニスプラス
Case 5: span = 310 'ミニスぺース
End Select
setretu = Cells(x, 190 + n).Value '番号によりデータ記入位置を設定する。

writretu = setretu + span
caunter = Application.CountA(Range(Cells(4000, writretu), Cells(5500, writretu))) '記入位置をカウンタから計算する。

Cells(5501, writretu) = caunter '出現回数

If caunter = 0 Then '回号データを5500行から記入し間隔を表示する
 Cells(5500, writretu) = Cells(x, 190)
 Cells(5502, writretu) = kaigo - Cells(5500, writretu)
Else
 Cells(5500 - caunter, writretu) = Cells(x, 190)
If caunter = 1 Then
 Cells(5500, writretu) = Cells(5500, writretu) - Cells(5500 - caunter, writretu)
ElseIf caunter >= 2 Then
 Cells(5501 - caunter, writretu) = Cells(5501 - caunter, writretu) - Cells(5500 - caunter, writretu)
End If
End If


Cells(5501, writretu) = caunter + 1 '合計カウンタを計算表示する
Cells(5504, writretu) = kaigo - Cells(5502, writretu) '現間隔での回号


 Next n
Next x


Cells(5501, 320) = 5501 - Application.Max(Range(Cells(5501, 200), Cells(5501, 319)))
Cells(5501, 199) = "=SUM(GR5501:HS5501)"
Call saikeisanon '再計算を起動させる
Cells(kaigo + 9, 190).Select
End Sub


上の簡単なマクロで直接セルに出力してるので処理に時間が掛かる。配列変数を使って計算すれば早くなるようですね。



計算結果を表にコピーしてまとめてる。