マクロ作成方法10(詳細集計)
各集計をもっと細かく集計したい時があります。
その時は、間隔を指定するとかが必要になりますね。
間隔を指定する対話型マクロが必要になりますが?その際は最後の行が分かる様に計算式を使って行きます。(下の様にしてますがこの式では5000行迄対応してます。)
集計方法としては次の様なことが考えられます。
(1)一定の間隔毎
(2)直近の任意の間隔(最後のデータから遡って)
(3)最初と最後を任意に指定
(2)直近の任意の間隔(最後のデータから遡って)の場合はちょっと面倒な気が
します。別のマクロ作成が必要かも知れないですね。
直近の回数を入力してペア数字集計するマクロ(最終回からさかのぼって直近50回)
変数 知らなかった本当の使い方
(マクロ作成方法6を改造し入力して計算する)
Sub n4bx_pea_tyo_non_nkai() 'ボックスペア集計 (重複なし) 任意の回数での集計
Dim xa As long, ya As long, i As long, j As long, k As long, l As long, m As long, n As long
Dim dpt1 As long, dpt2 As long, dpt3 As long, dpt4 As long
Dim dptn As long, deme(4) As long, ptn As long, lastkai As long, skai As long
Sheets("出現数").Select
Range("HB5:HK14").Select
Selection.ClearContents
lastkai = Sheets("ストレートパターン").Cells(2, 15) + 3 ’データの集計最終行
skai = InputBox("直近何回分") - 1 '質問で任意の集計回数を入れる(ここで50)
If skai = 0 Or skai > lastkai Then End ’入力制限
i = lastkai - skai
'i = 4
Call saikeisanoff
Do Until Sheets("ストレートパターン").Cells(i, 3) = ""
Cells(1, 210) = Val(Left(Sheets("ストレートパターン").Cells(i, 3), 1))
Cells(1, 211) = Val(Mid(Sheets("ストレートパターン").Cells(i, 3), 2, 1))
Cells(1, 212) = Val(Mid(Sheets("ストレートパターン").Cells(i, 3), 3, 1))
Cells(1, 213) = Val(Right(Sheets("ストレートパターン").Cells(i, 3), 1))
Cells(1, 215) = "=small(hb1:he1, 1)"
Cells(1, 216) = "=small(hb1:he1, 2)"
Cells(1, 217) = "=small(hb1:he1, 3)"
Cells(1, 218) = "=small(hb1:he1, 4)"
Cells(1, 205) = "=countif(hg1:hj1, hg1)" '出目の数を計算
Cells(1, 206) = "=countif(hg1:hj1, hh1)" '出目の数を計算
Cells(1, 207) = "=countif(hg1:hj1, hi1)"
Cells(1, 208) = "=countif(hg1:hj1, hj1)"
dptn = Cells(1, 205) & Cells(1, 206) & Cells(1, 207) & Cells(1, 208)
Cells(1, 221) = dptn
For j = 1 To 4
deme(j) = Cells(1, 214 + j)
Next j
'全パターンの関係式
xa = deme(1)
ya = deme(2)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Select Case dptn '各パターンからの計算
Case 1111 'シングル1234 1111
For k = 1 To 2 '出目13,14
xa = deme(1)
ya = deme(k + 2)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Next k
For l = 2 To 3 '出目23,24
xa = deme(2)
ya = deme(l + 1)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Next l
xa = deme(3) '出目34
ya = deme(4)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Case 2211 'ダブル1123 2211
For k = 3 To 4 '出目13,14
xa = deme(1)
ya = deme(k)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Next k
xa = deme(3) '出目23
ya = deme(4)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Case 1221 'ダブル1223 1221
xa = deme(1)
ya = deme(4)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
For k = 3 To 4 '出目23,24
xa = deme(2)
ya = deme(k)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Next k
Case 1122 'ダブル1233 1122
xa = deme(1)
ya = deme(3)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
For l = 1 To 2 '出目23,34
xa = deme(l + 1)
ya = deme(l + 2)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Next l
Case 2222 'ダブルダブル1122 2222
For k = 1 To 2 '出目23 34
xa = deme(k + 1)
ya = deme(k + 2)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Next k
Case 1333 'トリプル1 1112 3331
xa = deme(3)
ya = deme(4)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
Case 3331 'トリプル2 1222 1333
xa = deme(3)
ya = deme(4)
Cells(xa + 5, 210 + ya) = Cells(xa + 5, 210 + ya) + 1
End Select
i = i + 1
Loop
Call saikeisanon
Cells(3, 210) = " 直近" & skai + 1 & "回分"
Cells(1, 210).Select
End Sub