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 |
我尝试在宏中尝试使用代码编辑器,但我对此很陌生,发现它对我来说有点复杂。太感谢了!
更新:这个线程变成了一些高尔夫代码。最短的答案似乎是:
=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)
归档时间: |
|
查看次数: |
152 次 |
最近记录: |