如何计算连续重复的次数?

如何计算连续重复的次数?

我有一个 Excel 文件,我已对其执行了操作。我现在有一列,其值要么为 1,要么为 0。

我需要做什么来计算连续序列中出现的“1”的数量。

我的数组如下所示:
1
0
0
0
1
1
1
1
1
0
1
1
0

我需要提取的是我们看到连续 5 个 1,然后连续 2 个 1。我该怎么做?

答案1

这并不优雅,但它可以工作:

在你的“1”和“0”列之后,

制作第二列:

0
=(A2+B1)*A2  <-- You can just drag-fill this downward
=(A3+B2)*A3
=(A4+B3)*A4
.
.
.

...并制作第三列:

0
=SUMIF(B3,0,B2)  <-- You can just drag-fill this downward as well
=SUMIF(B4,0,B3)
=SUMIF(B5,0,B4)
.
.
.

第三列将显示每组中“1”的数量,以及运行中最后一个“1”旁边的总和。

答案2

使用计数函数可以告诉 Excel 计算给定范围内特定条件的出现次数。

COUNTIF(range,criteria)

假设您的数据在 A 列和第 1 至 13 行,您将使用以下内容来计算“1”出现的次数。

=COUNTIF(A1:A13, 1)

将范围调整为您想要计算的范围,并将标准调整为您想要计算的内容。

答案3

我遇到了类似的问题。我的方法很丑陋且效率低下,但确实有效。

我制作了第二列,查看相邻单元格的值是否是我想要的,如果是,则给出第二列中其上方单元格的值 0+ 的数字。

我创建了第三列,其中每个单元格查看第二列中的相邻单元格,如果值大于其下方的值,则将第三列中最大值的值赋给该单元格所在行。如果不是,则它会输出一个空值 ("") 这样,我就可以放置一个连续的标识符编号。

我制作了第四列,查看第 3 列中的相邻单元格,如果它是除空白以外的任何值,则放置第 2 列中该行的值。

然后我创建了第五列,从 1 开始,每一行都比前一行高一行,直到第 3 列的最大值。

最后,我制作了第六列,并使用了查找功能。查找值将是第 5 列中的相邻单元格。范围将是第 3 列和第 4 列。我会让它从第 4 列中取出值。

我将一系列相同的值定义为一次运行。第 5 列中的每个数字代表一次运行。第 6 列中的每个数字代表该运行的大小。这允许您生成每次运行的大小。

就像我说的,这是一种很糟糕的解决方法,用 VBA 可能可以写得更干净,但它是有效的。

答案4

不要把它想象成计数连续的数字。把它想象成找到第一个 0 的位置。

=匹配(0,A1:A14,0)-1

向下拖动公式,让范围随着向下拖动而调整。它将为您提供数据中任意给定点的连续 1 的数量。

相关内容