Numeração de dados do Excel

2

Eu tenho uma série de dados no excel como abaixo

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

Quero numerá-lo como abaixo:

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

Por favor ajude

    
por Thomas 15.01.2016 / 12:31

3 respostas

4

Com dados na coluna B , em A1 digite:

1

Em A2 digite:

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

e copie:

    
por 15.01.2016 / 16:03
3

Supondo que as colunas são A e B, coloque um 1 na coluna A1 , depois coloque esta fórmula em A2 e arraste-a para baixo

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

Isso funciona por:

=IF(NOT(B2=B1)... - Compara a célula B2 a B1. Se eles não combinam ...

INDEX($A$1:A1,MATCH(9.99999999999999E+307,$A$1:A1))+1 - Localiza o último número de A1 (fixo) em A1 (variável) e adiciona 1 a ele. Os $ 's são necessários para garantir que esteja sempre comparando de A1, até a célula logo antes dele. Caso contrário:

"") - Apenas retorne uma string em branco.

    
por 15.01.2016 / 13:07
2

Este VBA faz isso. Faça isso em uma cópia da pasta de trabalho, pois não há opção de desfazer.

Observe também que você pode definir alguns valores no início do código

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

Veja também Como adiciono o VBA no MS Office?

    
por 15.01.2016 / 13:15