継続回数集計マクロ
上の様に継続回数を集計する下記の簡単なマクロを作って集計しています。
(ここでは出目0と1が出ない継続回数を出力)
(1)ここでは、P列に条件関数を0と1で入れて集計データの最後までコピー貼り付けし、P2からマクロを動かすとP列が1の時にQ列R列に継続回数がマクロで出るようにしてます。「条件関数はここでは =IF(AND(C2="",D2=""),1,0)」
(2)R列の継続回数をここでは1回~13回までCOUNTIF関数でL列から右の列に出しています。(これはマクロではなくて手動で操作なので面倒ですw)
Sub rencounter() ’連荘カウンター(継続回数)
retu = ActiveCell.Column ’列位置(指定してないので)
gyou = ActiveCell.Row
i = 0
Do Until Cells(gyou + i, retu) = ""
Cells(gyou + i, retu + 1) = "" ’出力セル内容を消しておく
Cells(gyou + i, retu + 2) = ""
If Cells(gyou + i, retu) <> 0 Then
Cells(gyou + i, retu + 1) = k + 1
k = k + 1
If Cells(gyou + i + 1, retu) = 0 Then
rentyan = k: k = 0
Cells(gyou + i, retu + 2) = rentyan
End If
End If
If i = 7000 Then Exit Do ’データ行7000まで対応(変更可)
i = i + 1
Loop
If i = 0 Then MsgBox "データ等をチェックして下さい。": End
End Sub
データ行数が多くマクロが遅くなる場合、マクロの最初は再計算オフ、最後は再計算オン
追加が必要になると思います。(「マクロのスピードアップ」見てください)
マクロのスピードアップ
マクロ改造(案)
継続回数別集計もCOUNTIF関数を使わずマクロで出来る様に改造したいです。
条件関数もマクロで対称データ分を一括操作出来れば楽ですが?集計対象が一定でないので迷うところです。
継続回数と非継続回数を同時に集計する。
継続データと非継続データを交互に出力?
(長い継続の後の非継続がどう成っているか知りたい)