使用多个条件计算 MAX 连续值

Count MAX consecutive values with multiple criteria

我想获取最大连续值以使用多个条件进行计数。我在网上找到了这个公式

=ArrayFormula(MAX(FREQUENCY(IF($B:$B="WIN",ROW($B:$B)),IF($B:$B<>"WIN",ROW($B:$B)))))

它对一个标准非常有效,单独计算 "win" and/or "buy"。但是我想在同时满足 2 个条件时获得最大连续计数,有点交叉引用。

就像上面的例子一样,我想要最大连续计数 "buy" 本身是 5,而 "win" 本身是 4。但是我想要最大连续计数一起出现,在上面的例子中只有2次。

我尝试以不同的方式修改这个公式,但从未得到正确的结果。

这里是sample doc

您必须将 "Buy" 和 "Win" 的条件与数组公式中的乘法相结合以获得 AND。然后您需要在 FREQUENCY 的第二部分取反该表达式。您可以将 NOT 与相同的表达式一起使用:

=ArrayFormula(MAX(FREQUENCY(IF((A2:A="Buy")*($B:$B="WIN"),ROW($B:$B)),IF(not((A2:A="Buy")*($B:$B="WIN")),ROW($B:$B)))))

或者使用一些布尔逻辑通过加法将其转换为 OR 表达式,如下所示:

=ArrayFormula(MAX(FREQUENCY(IF((A2:A="Buy")*($B:$B="WIN"),ROW($B:$B)),IF((A2:A<>"Buy")+($B:$B<>"WIN"),ROW($B:$B)))))