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

Ima*_*ad 5 vba microsoft-excel microsoft-excel-2010

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

Exc*_*lll 9

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

=SUMPRODUCT((A1:A25=0)*(A2:A26=1)*(NOT(ISBLANK(A1:A25))))
Run Code Online (Sandbox Code Playgroud)

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


小智 6

我的解决方案是假设从单元格 A2 开始到 A 列向下的干净数据。对于我的公式,它还假设没有超过第 1000 行的数据(针对大多数真实世界的数据向上调整此值。

公式是一个数组公式,所以使用 ctrl+shift+enter 输入

=SUM(IF(A2:A1000=0,IF(A3:A1001=1,1,0),0))
Run Code Online (Sandbox Code Playgroud)

公式如何运作。

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

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

在此处输入图片说明


Art*_*ner 2

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

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

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

C2将包含以下公式:

=IF(AND(NOT(ISBLANK(B3)),B2=1,B3=0),1,0)
Run Code Online (Sandbox Code Playgroud)

D2 将包含:

=IF(AND(NOT(ISBLANK(B3)),B2=0,B3=1),1,0)
Run Code Online (Sandbox Code Playgroud)

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

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

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

在下面的例子中:

D18=SUM(C2:C16)
D19=SUM(D2:D16)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述