- 締切済み
excelについて質問です。
excelについて質問です。 同一セル内に”011101100000011111”のような数字が並んでいます。その中で1が連続して並んでいる組合せが何種類あるかを調べたいと思っております。 例えば、”11”が○個、”111”が△個と言ったようなことは可能でしょうか?教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- turuzou
- ベストアンサー率33% (15/45)
少し変更してみました。(A1に 010110111011011111) u_countb(範囲,検索文字,連続数) =u_countb(A1,1,2) で、 2 と表示されます。 (応用 =u_countb($A1,1,COLUMN(B1)) で、オートフィルで右へ) Function u_countb(v As String, w As String, z As String) Dim x, y For x = 1 To Len(v) If Mid(v, x, 1) = w Then y = y + 1 Else If y <> 0 Then If y = z Then u_countb = u_countb + 1 y = 0 End If End If Next x If y <> 0 Then If y = z Then u_countb = u_countb + 1 y = 0 End If u_countb = u_countb End Function
- turuzou
- ベストアンサー率33% (15/45)
ユーザー定義関数を作ってみました。 下記は、ヒントになりそうな物です。 使用法は、例えばA1に、文字列として 010110111011011111 が、入力されていて B1へ =u_count(A1,1) と入力すると 1,2,3,2,5 と表示されるので、 コピー→値の貼り付け(数式を消す)→データ→区切り位置等でカンマで区切り、範囲をCOUNTIF等で数えてみては如何でしょうか? Function u_count(v As String, w As String) Dim x, y, z For x = 1 To Len(v) If Mid(v, x, 1) = w Then y = y + 1 Else If y <> 0 Then z = z & "," & y y = 0 End If End If Next x If y <> 0 Then z = z & "," & y y = 0 End If u_count = Right(z, Len(z) - 1) End Function