- ベストアンサー
エクセルで同じ数字が連続している個数を関数でセルに出力
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列にはどのような関数を入力すればよいでしょうか。
- みんなの回答 (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を下にコピペ。
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
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) 下方向にオートフィル
お礼
ありがとうございました。 基本的にはN02の方と同じご回答だと思いますので、ご回答順ということで10ptにさせていただきました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
B1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1=1,COUNTIF($A$1:$A1,$A1),IF($A1<>"",0,"")) C1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1=-1,COUNTIF($A$1:$A1,$A1),IF($A1<>"",0,""))
お礼
ご回答ありがとうございました。トータルの数をもとめるのではなく、連続する数をもとめたいので、異なる数が出てきたときはそこから再び数えなおすような感じです。 説明が足らずに申し訳ありませんでした。
お礼
ありがとうございました。 回答に示されるとなるほどと思いますが、なかなかこういう発想が思い浮かびません。