我需要一个可以执行此操作的宏或公式:
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 1 1 2
),所以当它更改(到2或3等)时,列B上的计数器必须重置并且当A重复下一个值(1 2 3 1
)
感谢
答案 0 :(得分:2)
修改强>
看看bzimor的答案,因为他在B1栏中没有硬性值的情况下以更一般的方式解决了这个问题!
原始答案
如果没有VBA,您可以通过以下方式解决问题:
在B1列中加上1的硬值。这是您的起始值,应始终正确,因为您从1开始计数。
然后在B2
中输入以下公式=IF($A2=$A1;$B1+1;1)
只需将公式向下拖动到B的其他行,即可完成
所以B3看起来应该是这样的
=IF($A3=$A2;$B2+1;1)
依旧......
答案 1 :(得分:1)
您可以使用单一公式:
=COUNTIF($A$1:A1,A1)
将其放入单元格B1
并填写
答案 2 :(得分:0)
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