具有多个条件的连续值的平均值

Average of Consecutive values with multiple criteria

如何获得连续 "win & buy" 的平均值。在 "win & buy" 的情况下,事件的平均值将是 1+1+1+1+2 =6(win&buy + win&buy + win&buy + win&buy +(win&buy + win&buy ))除以发生次数,在这种情况下5 会给我们 1.2 .

"win" 的另一个示例是事件的平均值为 1+1+1+2+4(连续值,win+win+win+win,win+win,win,win,win,因为底部有 3 个 "win" + 2 个连续的 "win" 和最后 4 个连续的 "win" = 9 除以出现次数,在这种情况下 5 会得到 1.8 .

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

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

我从@Tom Sharpe 那里得到了上面的 MAX 连续值的公式,并试图对它们进行 AVG,但是由于计算中全是 0,我无法得到正确的答案。

Sample sheet 包括在内。

平均获胜和购买:

=AVERAGE(QUERY(ARRAYFORMULA(FREQUENCY(
 IF(    (A2:A="BUY")*($B:$B="WIN"),  ROW($B:$B)), 
 IF(NOT((A2:A="BUY")*($B:$B="WIN")), ROW($B:$B)))), 
 "where Col1>0"))

平均卖出和买入:

=AVERAGE(QUERY(ARRAYFORMULA(MAX(FREQUENCY(
 IF(    (A2:A="SELL")*($B:$B="WIN"),  ROW($B:$B)),
 IF(NOT((A2:A="SELL")*($B:$B="WIN")), ROW($B:$B))))),
 "where Col1>0"))