• 締切済み

excelについて質問です。

excelについて質問です。 同一セル内に”011101100000011111”のような数字が並んでいます。その中で1が連続して並んでいる組合せが何種類あるかを調べたいと思っております。 例えば、”11”が○個、”111”が△個と言ったようなことは可能でしょうか?教えてください。

みんなの回答

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.2

少し変更してみました。(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)
回答No.1

ユーザー定義関数を作ってみました。 下記は、ヒントになりそうな物です。 使用法は、例えば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