• ベストアンサー

エクセルで同じ数字が連続している個数を関数でセルに出力

A列に1かー1かいずれかの数字が入力されているとき、その行から上方に数えて、B列には1の連続している個数を、C列にはー1の連続している個数を出力したいのです。例えば A列    B列    C列 1      1     0 1      2     0 -1    0     1 -1    0     2 -1    0     3 といった具合です。 この時、B列、C列にはどのような関数を入力すればよいでしょうか。

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

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

一例として。 B1に「=IF(A1=1,1,0)」、C1に「=IF(A1=-1,1,0)」 B2に「=IF(A2=1,B1+1,0)」、C2に「=IF(A2=-1,C1+1,0)」 B2とC2を下にコピペ。

blackleon
質問者

お礼

ありがとうございました。 回答に示されるとなるほどと思いますが、なかなかこういう発想が思い浮かびません。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

A列 B列 C列 1  1  0 1  2  0 1  3  0 -1  0  1 -1  0  2 -1  0  3 1  1  0 1  2  0 -1  0  1 -1  0  2 上記のようにA列に1またはー1が繰り返して入力されて、そのブロックごとの出現回数を表示するなら以下の関数を入力します。 B1セル =(A1=1)*1 B2セル =IF(A2=1,IF(A1=-1,1,B1+1),0) 下方向にオートフィル C1セル =(A1=-1)*1 C2セル =IF(A2=-1,IF(A1=1,1,C1+1),0) 下方向にオートフィル

blackleon
質問者

お礼

ありがとうございました。 基本的にはN02の方と同じご回答だと思いますので、ご回答順ということで10ptにさせていただきました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

B1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1=1,COUNTIF($A$1:$A1,$A1),IF($A1<>"",0,"")) C1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1=-1,COUNTIF($A$1:$A1,$A1),IF($A1<>"",0,""))

blackleon
質問者

お礼

ご回答ありがとうございました。トータルの数をもとめるのではなく、連続する数をもとめたいので、異なる数が出てきたときはそこから再び数えなおすような感じです。 説明が足らずに申し訳ありませんでした。

関連するQ&A