计算找到第一个非零值后的所有单元格 - Excel?

Count all cells after the first non zero value found - Excel?

我有这个例子:

我需要一个公式来计算第一个非零值之后的所有数字。

值范围是 A1:H4。但是我需要计算每一行 A1:H1; A2:H2...A4:H4。

0 0 7 2 0 0 0 9 - 计数结果 6
5 0 4 0 2 0 0 0 - 计数结果 8
0 0 0 0 0 0 7 0 - 计数结果 2
0 0 0 0 0 0 0 4 - 计数结果 1

谢谢! c

=LEN(RIGHT(A1,FIND("1",A1&"1")))

如果值在A1:H1,数组公式**:

=COUNT(H1:INDEX(1:1,MATCH("",T(1/A1:H1),0)))

举个例子:A1:H1包含:

0 0 7 2 0 0 0 9

往复运动:

1/A1:H1

将return:

{#DIV/0!,#DIV/0!,0.142857142857143,0.5,#DIV/0!,#DIV/0!,#DIV/0!,0.111111111111111}

正在将 T 函数应用于此数组 returns:

{#DIV/0!,#DIV/0!,"","",#DIV/0!,#DIV/0!,#DIV/0!,""}

即原始范围内的所有非零值现在都已减少为空字符串“”;全为零导致错误。

我们现在可以对空字符串执行精确匹配,这样:

MATCH("",T(1/A1:H1),0)

即:

MATCH("",{#DIV/0!,#DIV/0!,"","",#DIV/0!,#DIV/0!,#DIV/0!,""},0)

给出:

3

等等:

INDEX(1:1,MATCH("",T(1/A1:H1),0))

即:

INDEX(1:1,3)

returns 对单元格的范围引用:

C1

等等,最后:

COUNT(H1:INDEX(1:1,MATCH("",T(1/A1:H1),0)))

即:

COUNT(H1:C1)

其中 Excel 会将范围引用更正为:

COUNT(C1:H1)

是:

6

根据需要。

此致

**数组公式的输入方式与'standard'公式不同。您不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(但不要尝试自己手动插入)。