Excel 基于其他列重复的自动增量
我需要一个宏或公式可以做到这一点:Excel 基于其他列重复的自动增量,excel,vba,Excel,Vba,我需要一个宏或公式可以做到这一点: 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必须有一个增量编号,而列A具有相同的重复值,例如1 2,当它变为2或3等时。当A重复下一个值1 2 3 1时,列B上的计数器必须重置并自身递增 谢谢编辑 看一看bzimor的答案,因为他以更一般的方式解决了B1列中没有硬值的问题 原始答案 在不使用VBA的情况下,可以通过以下方
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必须有一个增量编号,而列A具有相同的重复值,例如1 2,当它变为2或3等时。当A重复下一个值1 2 3 1时,列B上的计数器必须重置并自身递增
谢谢编辑
看一看bzimor的答案,因为他以更一般的方式解决了B1列中没有硬值的问题
原始答案
在不使用VBA的情况下,可以通过以下方式解决此问题:
在B1列中输入硬值1。这是您的起始值,应该始终正确,因为您以1开始计数
然后在B2中输入以下公式
=IF($A2=$A1;$B1+1;1)
只需将公式向下拖动到B的其他行,就完成了
所以B3应该是这样的
=IF($A3=$A2;$B2+1;1)
依此类推……您可以使用单一公式:
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单元格并填写您是否有任何代码可供共享,您已经尝试使用这些代码来解决问题?很好的解决方案!