我希望在B列开始计数,直到A列看到#0,然后重置并重新计数直到下一个零,依此类推。
ncdf4
--------------------我尝试过的代码失败了--------------------- -----
A B
1 2 1
2 3 2
3 9 3
4 5 4
5 3 5
6 0
7 4 1
8 5 2
9 9 3
10 0
11 7 1
. 2 2
. 5 3
. 0
答案 0 :(得分:1)
以下代码将执行您在问题中要执行的操作:
Dim r As Long
For r = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(r, "A").Value = 0 Then
Cells(r, "B").Value = ""
ElseIf r = 1 Then
Cells(r, "B").Value = 1
ElseIf Cells(r - 1, "A").Value = 0 Then
Cells(r, "B").Value = 1
Else
Cells(r, "B").Value = Cells(r - 1, "B").Value + 1
End If
Next
这也可以使用Excel公式
来完成=IF(A2=0,"",IF(A1=0,1,B1+1))
单元格B2中的并将其复制下来。但这依赖于从第2行(或更晚)开始的数据,因为如果您的数据在第1行开始,对A1和B1(即前一行)的引用将会崩溃。