excel 计算单元格D1:O1中具有零值的单元格在达到大于零的值之前的数量的公式

hkmswyz6  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(425)

我把数据分布在名为“月份”的列中,我需要计算零值单元格的数量,但只计算到最后一个值大于零的单元格,不要计算最后一个值大于零的单元格之后的零值单元格。
有问题的细胞是D1:O1
我试着在这个论坛上找到答案,但我找不到任何有效的方法。

dsf9zpds

dsf9zpds1#

如果没有关于具体情况的更多信息,则可以在所有数字均为零或正数时使用以下公式:

=MATCH(0, D1:O1)

如果范围中最后一个零旁边有负值,因为MATCHmatch_type等于1(默认值),所以范围需要按升序排列,您可以用途:

=MATCH(0, ABS(D1:O1))

这在一般情况下是有效的
以前的方法假设您一直在计数,直到找到一个不为零的值
没有输入样本,我不是100%你的意思从你的问题停止时,它发现一个值 * 不等于零或大于零 *。对于后一种情况。你需要继续计数零值,即使它发现负值和停止计数时,它发现一个正值。如果是这种情况,然后尝试以下操作:

=LET(rng, D1:O1, seq, SEQUENCE(,COLUMNS(rng)),f, FILTER(seq, rng > 0,-1), 
 pos, IF(@f=-1, MAX(seq) + 1, TAKE(f,,1)), IF(pos = 1, 0, 
 REDUCE(0, FILTER(rng, seq < pos), LAMBDA(ac,x, IF(x = 0, ac + 1, ac)))))

它考虑了几种非满意路径场景:
1.所有值均为正值,返回0
1.第一个值为正,返回0
1.未找到正值,计数到末尾
否则,查找第一个正值(pos)的索引位置,然后通过REDUCE函数对该索引位置之前的零值进行计数。

相关问题