计算序列中的重复值——例如足球比分

计算序列中的重复值——例如足球比分

我目前有一列如下所示的值,列出了足球比赛的结果。

Lost
Lost
Lost
Won
Drew
Drew
Won
Won

使用这个公式,我能够计算出序列重复的位置——因此对于上面的列表,连续有三个“丢失”。

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

但是,我想计算值为“Drew”或“Won”(从而显示没有出现“lost”的行数。这可能吗?

谢谢

答案1

这是一个模块子,它查看 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

相关内容