Excel - 如何计算一列上非零数字的条纹数

Kin*_*uie 2 excel excel-formula

我有一个包含各种数字的字数列,但每个单元格都有一个公式。所以我想只计算具有非零数字的单元格,并在其达到零时停止。换句话说,就是连胜。

Daily session count
100
200
400
100
200
=IF(C9<>"",SUM(C9-C8),"")
200
300
=IF(C9<>"",SUM(C9-C8),"")
=IF(C9<>"",SUM(C9-C8),"")
=IF(C9<>"",SUM(C9-C8),"")
=IF(C9<>"",SUM(C9-C8),"")
Run Code Online (Sandbox Code Playgroud)

本例中最长的连续次数为 5。我可以使用什么公式来实现此目的?我将其用于 Google Sheets,但我需要它才能用于 EXCEL。

=INDEX(COLUMNS(SPLIT(FLATTEN(SPLIT(TRIM(QUERY('Daily Count'!B2:B,,9^9)), " 0 ", )), " ")))
Run Code Online (Sandbox Code Playgroud)

编辑:所以带有 0 的单元格实际上有一个公式(意味着它们不为空),但是只有当相邻单元格更新为每日字数时,它们才会被填充,因此每日会话数也会更新。

如果我错过了一天的写作,我仍然会添加每日字数,这意味着每日会话数为“0”。同样,我要寻找的是计算列中的单元格数,作为大于 0 的整数的最长条纹。谢谢:)

Jvd*_*vdV 5

使用 ms365,尝试:

在此输入图像描述

公式为B1

=MAX(SCAN(0,A1:A9,LAMBDA(a,b,(a+(b<>0))*(b<>0))))
Run Code Online (Sandbox Code Playgroud)

或者,使用LET()嵌套:

=MAX(SCAN(0,A1:A9,LAMBDA(a,b,LET(x,b<>0,(a+x)*x))))
Run Code Online (Sandbox Code Playgroud)