В настоящее время у меня есть столбец значений, как показано ниже, в котором перечислены результаты футбольных матчей.

Lost
Lost
Lost
Won
Drew
Drew
Won
Won

Используя эту формулу, я смог вычислить, где последовательность повторяется - поэтому для приведенного выше списка три потерянных подряд.

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

Тем не менее, я хотел бы вычислить, где значение равно "Drew" или "Won" (таким образом, показывая количество строк без появления "lost"). Это возможно?

Спасибо

1 ответ1

0

Вот модуль sub, который просматривает столбец A до тех пор, пока не встретит пустую ячейку и напечатает наибольшую не потерянную полосу в ячейке 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .