Per my edit... you could store the count of streaks to simplify the AVG calc, eg:
AN2:
=IF($AL2=0,"",SUM(--(FREQUENCY(IF($B2:$Q2<>0,COLUMN($B2:$Q2)),IF($B2:$Q2=0,COLUMN($B2:$Q2)))=$AL2)))
confirmed with CTRL + SHIFT + ENTER
copied down
Then modify the AVG calc accordingly
AM2:
=IF($AL2=0,"",SUMPRODUCT(SUBTOTAL(9,OFFSET($A2,0,$AL2-1+(ROW($A$1:INDEX($A:$A,COLUMN($Q2)-$AL2))),1,-$AL2))*(SUBTOTAL(5,OFFSET($A2,0,$AL2-1+(ROW($A$1:INDEX($A:$A,COLUMN($Q2)-$AL2))),1,-$AL2))>0))/($AL2*$AN2))
confirmed with Enter (not an Array per se)
copied down
Bookmarks