シーケンス内の重複値をカウントする - サッカーのスコアの場合

シーケンス内の重複値をカウントする - サッカーのスコアの場合

現在、サッカーの試合の結果をリストした以下のような値の列があります。

Lost
Lost
Lost
Won
Drew
Drew
Won
Won

この式を使用すると、シーケンスが繰り返される場所を計算できます。したがって、上記のリストでは、連続して 3 つの「Lost」があります。

=IF(A2=A1,B1+1,1)

ただし、値が「Drew」または「Won」である場所を計算したい(それによって「lost」が表示されない行数を表示)。これは可能ですか?

ありがとう

答え1

これは、空白のセルに遭遇するまで列 A を調べ、最大の非「Lost」ストリークをセル B1 に出力するモジュール サブです。

Sub CountNonLoss()

Dim nonloss As Integer
Dim LongestStreak As Integer
Dim Val
Dim streak As New Collection
nonloss = 0
LongestStreak = 0

Range("A1").Select

  Do Until IsEmpty(ActiveCell)
    If ActiveCell.Value <> "Lost" Then
       nonloss = nonloss + 1
    Else
       streak.Add nonloss
       nonloss = 0
    End If
  ActiveCell.Offset(1, 0).Select
  Loop

  For Each Val In streak
    If Val > LongestStreak Then
       LongestStreak = Val
    End If
  Next Val

Range("B1").Value = LongestStreak
End Sub

関連情報