現在、サッカーの試合の結果をリストした以下のような値の列があります。
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