Excel 数据编号

Excel 数据编号

我在 Excel 中有一系列数据,如下所示

ARG2755-NNL4W
BBF1732-NNM4WF
BES0542-NNM4W
BES0542-NNM4W
BES0542-NNM4W
BES0542-NNM4W
BES0542-NNM4W
BES0542-NNM4W
BRA0743-NNM4VF
BRA1650-NNM4TK
BRA1919-NNO1PK
BRA1919-NNO1WK
BRA1920-NNL4VK
BRA1920-NNL4VK
BRB0939-NNL4WF
BRB1625-NNL4WK
BRB1625-NNL4WK

我想将其编号如下:

1 ARG2755-NNL4W
2 BBF1732-NNM4WF
3 BES0542-NNM4W
    BES0542-NNM4W
    BES0542-NNM4W
    BES0542-NNM4W
    BES0542-NNM4W
    BES0542-NNM4W
4 BRA0743-NNM4VF
5 BRA1650-NNM4TK
6 BRA1919-NNO1PK
7 BRA1919-NNO1WK
8 BRA1920-NNL4VK
    BRA1920-NNL4VK
9 BRB0939-NNL4WF
10 BRB1625-NNL4WK
    BRB1625-NNL4WK

请帮忙

答案1

包含列中的数据, 在A1进入:

1

A2进入:

=IF(B2=B1,"",1+MAX($A$1:A1))

并抄下来:

在此处输入图片描述

答案2

假设列为 A 和 B,1在列中输入 a A1,然后输入此公式A2并将其向下拖动

=IF(NOT(B2=B1),INDEX($A$1:A1,MATCH(9.99999999999999E+307,$A$1:A1))+1,"")

其工作原理如下:

=IF(NOT(B2=B1)...- 将单元格 B2 与 B1 进行比较。如果它们不匹配...

INDEX($A$1:A1,MATCH(9.99999999999999E+307,$A$1:A1))+1- 这会找到从 (固定) 到 A1 (可变) 的最后一个数字A1,并将它加 1。需要使用 $ 来确保它始终从 A1 比较到它之前的单元格。否则:

"")- 仅返回一个空白字符串。

在此处输入图片描述

答案3

这个 VBA 可以做到这一点。请在工作簿的副本上执行此操作,因为没有撤消选项。

另请注意,您可以在代码开始时设置一些值

Option Explicit
Sub SailMeHearties()

Dim row As Integer
row = 1

Dim col As String
col = "B"

Dim colOfNumber As String
colOfNumber = "A"

' LEAVE THE CODE BELOW ALONE OR WALK THE PLANK

Range(colOfNumber + ":" + colOfNumber).Clear
Range(colOfNumber & row).Value = 1

Dim startNumber As Integer
startNumber = 2

row = row + 1

Do While Range(col & row).Value <> ""

    If (Range(col & row).Value <> Range(col & row - 1).Value) Then
        Range(colOfNumber & row).Value = startNumber
        startNumber = startNumber + 1
    End If
    row = row + 1
Loop

End Sub

另请参阅如何在 MS Office 中添加 VBA?

相关内容