Excel:如何进行顺序分析和增量计数?公式还是宏?

Excel:如何进行顺序分析和增量计数?公式还是宏?

我想知道是否有办法按顺序分析一列中单词的出现情况。这有点复杂,所以这里有一个我想要实现的例子:

下面是我随机交替出现的两个单词“赢”和“输”。假设这些是 的结果,例如,连接 4 场比赛,其中比赛的获胜者是率先赢得 3 场比赛的人。目标是找到一个宏或公式,可以自动在发生这种情况的行级旁边输入“胜利”和“失败”。我猜逻辑是按顺序从上到下计算有多少个“赢”和“输”。然后在“赢”计数或“输”首先达到总数 3 时重置计数。不要忘记根据哪个先达到 3 来写“胜利”或“输”……或者可能更简单:只需增加底部总数,如我的示例所示

= 匹配

松动的

= 胜利

= 胜利

松动的

松动的

松动的 = 失败

= 胜利

松动的

松动的

松动的 = 失败

比赛总结果:胜利:3 / 失败:2

在 Excel 中可以实现这一点吗?

太感谢了

windows 10 - excel 2016 - 初级水平

附言:以下是附加信息:

  • 我输入的“胜利”和“失败”只是为了明确所需的顺序计数。

因此,我最希望的是公式能够按顺序分析 A1-A19 列,从 A1 开始,并计算“赢”和“输”的次数,只要两者之一达到 3 就停止。

例如:如果在连续计数中,在 3 次“输”之前达到 3 次“赢”(无论是 3 次赢对 0、1 还是 2 次输),则将“胜利”增加 +1(如果能够在比赛获胜或输掉的级别旁边输入“胜利”或“失败”一词,那就太完美了,但这不是强制性的,因为它可能太复杂)。

然后将计数重新归零,以便为下一场比赛重新开始计数,例如,如果这次计数发现“LOOSE”在“WIN”之前达到 3(同样,无论 WON 达到 0 或 1 或 2,重要的是第一个达到 3)则将“defeat”块增加 +1。然后将计数重新归零,以便继续计算以下组

希望它能有所帮助

答案1

尝试以下宏

Sub GetResults()

    Dim x, y As Integer 'Counter for win/loss
    Dim lastrow As Long

    'Get last row with value of column A
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row
    'Loop through the values
    For i = 1 To lastrow

        If Range("A" & i).Value = "win" Then
            x = x + 1
        Else
            y = y + 1
        End If


        If x = 3 Then
            Range("B" & i) = "Victory"
            x = 0
            y = 0
        End If

        If y = 3 Then
            Range("B" & i) = "Defeat"
            x = 0
            y = 0
        End If

    Next i

End Sub

相关内容