计数直至达到特定值

计数直至达到特定值

我有以下数据集代表我的问题:

1
2
3
1
2
1
2
3
4

我想要实现的是计数直到达到值“1”,所以它看起来像这样:

1 3 
2
3
1 2
2
1 4
2
3
4

我尝试使用 countif 但失败了。我不知道如何为此设置适当的参数。感谢您的任何帮助 :)

答案1

B1进入:

=IF(A1=1,COUNT(A1:$A$9999)-SUM(B2:$B$9999),"")

并向下复制:

在此处输入图片描述

所以专栏表示列中每个块中的项目数A1

答案2

Gary 学生的回答产生正确的结果。但是,

  • 直到 B 列完全填满后才有效。
  • 对于每一行,它都需要查看从其自身到第 9999 行的每一行。如果实际上有数千行数据,这似乎在计算上会很昂贵。

一个更有效、更独立的答案是

=IF(A1=1, MATCH(1,A2:A$9999,0), "")

与另一个答案一样,这对于 A 列中的值不是 1 的行不执行任何操作(并显示空白)。如果是 1,则公式只需向下搜索 A 列以找到下一个 1。

不幸的是,最后一个区块会失败,因为没有下一个 1. 为了解决这个问题,我们

=IF(A1=1, IFERROR(MATCH(1,A2:A$9999,0), COUNT(A1:A$9999)), "")

即,如果没有下一个 1,则我们一定在最后一个块中,因此只需计算剩余的非空白单元格。无需进行任何算术运算。

这里,B 列是 Gary 学生的公式,C 列是我的第一个公式,D 列是我的第二个公式:

电子表格,比较竞争公式

相关内容