如何在 Excel 中的列中记录从 0 到 1 的转变?

如何在 Excel 中的列中记录从 0 到 1 的转变?

我需要在 Excel 的单个列中记录从向下状态 (0) 到向上状态 (1) 的转换次数,我想知道 Excel 中是否有类似的逻辑,或者我是否可以在 VBA 中编写这种逻辑。但我对 VBA 不是很精通,所以如果有任何链接可用,那就太好了。

答案1

您可以使用单个公式来获取计数SUMPRODUCT。如果您的数据为A1:A25,则可以使用以下内容:

=SUMPRODUCT((A1:A25=0)*(A2:A26=1)*(NOT(ISBLANK(A1:A25))))

这仅计算列中一个值为 0(且不为空白)且后面的值为 1 的情况。

答案2

我的解决方案是假设干净的数据从单元格 A2 开始并向下移动到 A 列。对于我的公式,它还假设第 1000 行之后没有数据(对于大多数真实数据,请向上调整)。

公式是数组公式,因此使用 ctrl+shift+enter 输入

=SUM(IF(A2:A1000=0,IF(A3:A1001=1,1,0),0))

公式如何起作用。

对于 A2 至 A1000 的每个单元格,查找零,如果有零,则查找下一个单元格。如果下一个单元格中有 1,则将计数加一。请注意,空白单元格将计为零。

范围的末尾(A1000 和 A1001)必须超出数据的末尾。

在此处输入图片描述

答案3

如果您只想跟踪从下到上的变化(假设您的数据在 A 列中),那么您只需=N(A2>A1)将公式向下拖动即可。

TRUE如果值增加了(从下到上),则计算N(boolean)结果为 1 或 0。

要跟踪所有状态变化,您可以使用=N(A2<>A1)

要计算所有状态变化,您需要对列求和。

答案4

您可以使用公式来检测从 1 到 0 和从 0 到 1 的转换。但要小心空白单元格!

考虑以下示例(见下面的屏幕截图):

B列包含二进制数据模式。

C2 将包含以下公式:

=IF(AND(NOT(ISBLANK(B3)),B2=1,B3=0),1,0)

D2 将包含:

=IF(AND(NOT(ISBLANK(B3)),B2=0,B3=1),1,0)

您只需要在 C 列和 D 列中自动填充所需行数的公式。

  • C 列中的 1(一)的数量代表从 1 到 0 的转换数量。
  • D 列中的 1(一)的数量代表从 0 到 1 的转换数量。

最后你需要将 C 列和 D 列的和相加 (1)

在下面的例子中:

D18=SUM(C2:C16)
D19=SUM(D2:D16)

在此处输入图片描述

相关内容