いちばん失敗した人決定戦

MS Excelで連続したデータの個数を調べる方法を教えてください。

データ範囲の中で、プラスが何個連続で出たか、その個数の最大値を知りたい。

Aの列に連続で、

 1
 3
-5
 2
 3
 1
 1
-1
 1
 2
 1

とあった場合、プラスが連続した個数は、2回、4回、3回となり、その最大値の4回が得られる方法を御願します。


  

A 回答 (3件)

こんばんは



関数を使った方法です。
データはA1から入っているとします。

B1に
=IF(A1>0,1,0)

B2に
=IF(A2>0,B1+1,0)
とし、以下B2をオーフィル

C1に
=MAX(B:B)
としますと、C1にご希望の結果が得られます。

VBAと関数、方法は違いますが、#1のmerlionXXさんの考え方とほぼ同じです。
    • good
    • 0
この回答へのお礼

できました!

なるほど、こういう方法があるんですね。
知っている関数でも発想が思いつきませんでした^^;

ありがとうございます。解決しました。

お礼日時:2010/02/20 22:59

こんばんは!


かなり泥臭い方法になりますが・・・

↓の画像でB2セルに
=IF(OR(A2="",A2<0),0,1)
B3セルに
=IF(A3="","",IF(A3<0,0,B2+1))
という数式を入れ、B3セルをオートフィルでずぃ~~~!っと下へコピーしています。
そして、結果のD2セルは
=MAX(B:B)
という数式にしています。

以上、参考になれば良いのですが、
他に良い方法があれば読み流してくださいね。m(__)m
「MS Excelで連続したデータの個数を」の回答画像3
    • good
    • 0
この回答へのお礼

画像まで付けて頂きありがとうございます。

関数知っていても、それを上手に使いこなせいと勿体無いですね^^;

お礼日時:2010/02/20 23:03

VBAでよければ以下の手順をおためしください。


データはA1から始まるとしてあります。

1.Altキー+F11キーで Visual Basic Editor画面を呼び出します。

2.画面上部のメニューバーから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。

'*****ここから下をコピペ*****

Sub test01()
  Dim myC As Range, i As Long, myX As Long
  Set myC = Range("A1")
  Do While myC <> ""
    If myC.Value > 0 Then
      i = i + 1
    Else
      i = 0
    End If
    myX = Application.Max(myX, i)
    Set myC = myC.Offset(1)
  Loop
  MsgBox myX
  Set myC = Nothing
End Sub

'*****ここより上までをコピペ*****

3.Alt+F11キーでワークシートへもどります。

4. Alt+F8キーでマクロを呼び出し「test01」を実行します。
    • good
    • 0
この回答へのお礼

ありがとうございます。

マクロうまく動作しました。


スミマセン、こちらの質問内容に不足が有りました。教えて頂いて申し訳ないのですが、
MsgBoxに表示させるのではなく、最大個数を任意セルに常時表示させておきたいと思っております。

お礼日時:2010/02/20 22:41

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