- ベストアンサー
Excel 連の数の数え方について
過去の質問を参照したのですが、見つけることができなかったので質問させていただきます。 例えば、 10000011100101000 のような列があったとして、連というのは同じ数字の塊のことをいいます。上の例だと最初の1で1つの連と数えて、次の00000で1つの連と数えます。つまりこの例では17個の数字からなる数列に8個の連があることになります。 この連をエクセルで数えるにはどの関数を使えばいいでしょうか。 具体的にいうと、A列に-1と0と1がランダムに2000個ほど並べてあって、その連の数を私は数えたいのです。どなたかエクセルに詳しい方、ご教授ください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 一例です。 データはA1セルからあるとします。 関数での方法!というコトですので、 B1セルに「1」と入力 次にB2セルに =IF(A2<>A1,MAX(B$1:B1)+1,"") という数式を入れB2セルのフィルハンドルでダブルクリック! 最後に表示したいセルに =MAX(B:B) とすればお望みの数値が表示されると思います。m(_ _)m
その他の回答 (4)
- bunjii
- ベストアンサー率43% (3589/8249)
回答No.4の訂正です。 A2000が0のとき計数に誤りがありました。 A2001が未入力の場合は0と等価になるので1個の不足になります。 従って、次のように訂正します。 =1+SUMPRODUCT((A1:A1999<>A2:A2000)*1) A1は既に1個として確定しています。 A2以下を上のセルと比較し、同じときは0で異なるときが1とします。 これをA2からA2000まで合計して加算すれば目的に合います。
お礼
この関数は知りませんでした。助かりました。ありがとうございました。
- bunjii
- ベストアンサー率43% (3589/8249)
>具体的にいうと、A列に-1と0と1がランダムに2000個ほど並べてあって、その連の数を私は数えたいのです。 考え方はA1<>A2の比較を順次下のセルへ繰り返し、上下のセルの値が違う組み合わせの数を数えれば良いことになります。 次の数式で一挙に計数できます。 =SUMPRODUCT((A1:A2000<>A2:A2001)*1)
- don9don9
- ベストアンサー率47% (299/624)
No.1の方と似たような回答になりますが… データがA1セルから入っているとします。 まずB1セルに1と入力します。 次にB2セルに =IF(A2<>A1,B1+1,B1) と入力し、B2セルをコピーして下方向に、B列の最終行まで貼り付けます。 これでB列の値は、A列の値が変わるごとに1ずつカウントアップされていきますので、最終行のB列の値が連の数になります。
お礼
勉強になりました。ありがとうございます!
数列がセル A1~O1 までの 17個の場合、 =SUMPRODUCT((A1:P1<>B1:Q1)*1)+1 数列がセル A1~BXX1 までの 2000個の場合、 =SUMPRODUCT((A1:BXW1<>B1:BXX1)*1)+1
お礼
こういう関数もあるのですね!ありがとうございました!
お礼
こんにちは。素早い回答ありがとうございます!まさにこれが知りたかったのです。助かりました。皆さん私が求めていた回答でしたが、一番早かったのでベストアンサーに選ばせていただきます。