• ベストアンサー

エクセルで連続した1と0が何回出たかをカウントする

エクセルでONとOFFを時系列で1(ON)と0(OFF)で表しており、 ONになった回数を数えたいと思っています。 例)下記の数字がA1~A20に入っている   0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0  1がON、0がOFFなので、ONになった回数は4回 このような処理をエクセルで行うには どのような方法がありますでしょうか? ご教示いただきたく、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#3です。 =IF(A1=1,1,0)+SUMPRODUCT((A1:A19&A2:A20="01")*1) A1 が1の時は、On になるので、1を加えます。

radi10
質問者

お礼

返事が遅くなり、申し訳ありません。 他に行を付け足さず、結果を得ることができました。 ありがとうございました。

その他の回答 (5)

noname#204879
noname#204879
回答No.6

{=SUM((A1:A19=0)*(A2:A20=1))} (配列数式)

radi10
質問者

お礼

返信遅くなり、申し訳ありません。 試してみましたが、どうもうまくいきませんでした。 またの機会にご教示願います。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

1の出た回数-1が連続した回数として =COUNTIF(A1:A20,1)-SUMPRODUCT((A1:A19=1)*(A2:A20=1)) B列使ってもいいなら B1=A1 B2=IF(AND(A1=0,A2=1),1,0) でB2をB20までコピーして =SUM(B1:B20) で表示

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 その数字がどのように入っているのか良く分からないです。 >  0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0   ↓   00010011100110001110 半角スペースが入っているようですが、文字列として、隙間なく入っているという条件で、 上限を、一応、20桁までにしました。 =SUMPRODUCT((MID("0"&A1,COLUMN($A1:$T1),1)&MID("0"&A1,COLUMN($B1:$U1),1)="01")*1) 最初の「0」は、最高桁が、「1」がたっている時の条件です。 >ONになった回数は4回 つまり、Off が On となったということを想定していますから、On の状態のままでは、1回しかないということです。

radi10
質問者

補足

説明が足りていませんでした。 A1に0、A2に0、A3に0、A4に1、A5に0、A6に・・・・ が入っているという条件です。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

文字列のカウントですね。 考え方は、"10" のパターンを数えるために、"10" を文字列から削除した場合と、元の文字列の長さを比較する・・・です。 =(LEN(CONCATENATE(A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1))-LEN(SUBSTITUTE(CONCATENATE(A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1),"10","")))/2 長いですけど、こんな感じです。

radi10
質問者

補足

1と0は文字列ではなく、数字という条件です。 数字の場合も上記でOKなのでしょうか?

noname#122067
noname#122067
回答No.1

セルB1に「=A1」と入力します。 セルB2に「=IF(AND(A1=0,A2=1),1,0)」と入力します。 セルB3からB20にセルB2をコピー&ペーストします。 あとはB1からB20までの1の数を数えれば(「=SUM(B1:B20)」など)OK。 いかがでしょうか?

関連するQ&A