Excel 中是否有一个过程可以自动读取包含 TRUE/FALSE 值的列,并可以在新列中增量添加数字?

Ell*_*lka 2 excel automation vba excel-formula

我有一个非常大的电子表格,包含 50,000 多行。它们是相机陷阱事件的记录。我有一个名为“NewEvent”的列,其中仅包含 TRUE 或 FALSE 值,该值基于相机陷阱是否作为新事件触发。但是现在我需要按照事件发生的顺序对事件进行编号,并将这些值记录在新列中。例如,第一个 TRUE 将在新列中标记为事件 1,并且其后的所有 FALSE 值也仍将是事件 1 的一部分,直到出现另一个 TRUE(即事件 2),依此类推。我开始手动执行此操作,但意识到这将花费我相当多的时间。有没有办法在 Excel 中使用 VBA 或宏等来自动执行此操作?请看下面的例子:

新事件 事件编号
真的 1
错误的 1
错误的 1
错误的 1
真的 2
错误的 2
错误的 2
真的 3
错误的 3
错误的 3
错误的 3
错误的 3

我尝试在宏中尝试使用代码编辑器,但我对此很陌生,发现它对我来说有点复杂。太感谢了!

Big*_*Ben 6

更新:这个线程变成了一些高尔夫代码。最短的答案似乎是:

=N(B1)+A2
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


原答案:

COUNTIFS与混合范围参考一起使用。如果您有数万行,可能会使工作表陷入困境!

=COUNTIFS(A$2:A2,TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一个(性能更高)选项:

=IF(A2,SUM(B1,1),B1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

还有另一种选择(归功于Mayukh Bhattacharya

=IF(A2,N(B1)+1,B1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述