我目前有一列如下所示的值,列出了足球比赛的结果。
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