プロが教えるわが家の防犯対策術!

連続する1のカウントをブロックで評価したいのですがどうやればいいのか困っております。
1の連続がある数、(サンプルは4とします。)4以上発生したグループの数を取得したいのです。
実際には5000行ぐらいあります。お知恵をお願いいたします。
関数組み合わせでもVBAでもかまいません。
使用しているのはエクセル2013です。

A
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0

上記の回答は2回です

A 回答 (1件)

A2から下へ並んでいる。

結果をB1に出力。

Sub WK()

Dim Cnt1 As Long
Dim 連続数 As Long
Dim ブロック As Long

Dim END1 As Long
Dim Sh As Worksheet


Set Sh = ActiveSheet

END1 = Sh.Range("A65536").End(xlUp).Row


ブロック = 0
連続数 = 0

For Cnt1 = 2 To END1

If Sh.Range("A" & Cnt1).Value = 1 Then
連続数 = 連続数 + 1
Else
If 連続数 >= 4 Then
ブロック = ブロック + 1
End If
連続数 = 0
End If
Next Cnt1
If 連続数 >= 4 Then
ブロック = ブロック + 1
End If

Sh.Range("B1").Value = ブロック

Application.StatusBar = False
End Sub
    • good
    • 0
この回答へのお礼

助かりました。本当にありがとうございました

お礼日時:2016/04/22 16:57

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