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

时间:2015-08-18 09:13:13

标签: excel count

我有这个例子:

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

值范围为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

谢谢! ç

2 个答案:

答案 0 :(得分:2)

如果值在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

将返回:

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

将T函数应用于此数组将返回:

{#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)

返回对单元格的范围引用:

C1

等等,最后:

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

是:

COUNT(H1:C1)

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

COUNT(C1:H1)

是:

6

根据需要。

此致

**数组公式的输入方式与“标准”公式的输入方式不同。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果你已经正确地完成了它,你会注意到Excel在公式周围放置了大括号{}(虽然不要尝试自己手动插入这些)。

答案 1 :(得分:0)

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