我需要一個宏或公式,可以做到這一點:基於其它列自動遞增重複
Column A Values:
1
1
1
2
2
2
3
3
4
4
4
5
5
6
6
我需要列B做:
1
2
3
1
2
3
1
2
1
2
3
1
2
1
2
由於B列都必須有一個(例如1 1 1 2
),當它改變(到2或3等)時,列B上的計數器必須復位並自行增加,而A重複下一個值(1 2 3 1
)
謝謝
我需要一個宏或公式,可以做到這一點:基於其它列自動遞增重複
Column A Values:
1
1
1
2
2
2
3
3
4
4
4
5
5
6
6
我需要列B做:
1
2
3
1
2
3
1
2
1
2
3
1
2
1
2
由於B列都必須有一個(例如1 1 1 2
),當它改變(到2或3等)時,列B上的計數器必須復位並自行增加,而A重複下一個值(1 2 3 1
)
謝謝
編輯
看一看bzimor的回答,因爲他解決了在一個更一般的方式,而不在列B1硬值!
原來的答案
你可以解決它通過以下方式不VBA:
放1硬值列B1。這是你的起始值和因爲你開始用1
計數然後在B2中輸入以下公式
=IF($A2=$A1;$B1+1;1)
只需向下拖動公式B的其他行,你就應該總是正確的做
所以B3應該是這樣的
=IF($A3=$A2;$B2+1;1)
等等...
不錯!解決;) – jinfo
Here is your desired macros
Sub jkjainGenerateSerialNumber20161124()
readcol = Val(InputBox("type ref col#"))
writecol = Val(InputBox("type dest col#"))
ts = 0
Range("A1000000").Select
Selection.End(xlUp).Select
lastrow = ActiveCell.Row
For n = 2 To lastrow
prev = Cells(n - 1, readcol)
curr = Cells(n, readcol)
If prev <> curr Then
ts = 1
End If
If prev = curr Then
ts = ts + 1
End If
Cells(n, writecol) = ts
Next
End Sub
你可以用一個公式:
=COUNTIF($A$1:A1,A1)
把它放進細胞B1
和向下填充
偉大的解決方案! –
你有任何的代碼共享與您已經嘗試解決這個問題? –