dポイントプレゼントキャンペーン実施中!

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列にはどのような関数を入力すればよいでしょうか。

A 回答 (3件)

一例として。




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を下にコピペ。
    • good
    • 3
この回答へのお礼

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

お礼日時:2010/01/12 14:30

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)
下方向にオートフィル
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/12 14:31

B1セルには次の式を入力して下方にオートフィルドラッグします。


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

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

お礼日時:2010/01/12 14:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!