Meu amigo tem duas colunas onde uma tem valores únicos e outra coluna tem os mesmos valores, mas também duplicados como mostrado abaixo
Column 1 Column 2
ABC123 ABC123
CDE456 ABC123
EFG789 ABC123
ABC123
CDE456
CDE456
CDE456
EFG789
Às vezes, a coluna 2 nem sempre tem todos os valores; nesse caso, acho que só precisa ficar claro que eles não existem na coluna 2. O que ele quer fazer é que os valores da coluna 1 mudem para o número da linha do mesmo valor na coluna de valores duplicados, como mostrado abaixo.
Column 1 Column 2
ABC123 ABC123
ABC123
ABC123
ABC123
CDE456 CDE456
CDE456
CDE456
EFG789 EFG789
Existe uma maneira de fazer isso no Excel sem problemas com uma macro ou um recurso interno do Excel?
Responder1
Isso faz o que suas perguntas solicitam.
Sub ShowStartingPoints()
Dim rowA As Integer
rowA = 1
Do While (Range("A" & rowA).Value <> "")
Dim row As Integer
row = 1
Dim doesValueExitInB As Boolean
doesValueExitInB = False
Dim valueA As String
valueA = Range("A" & rowA).Value
Do While (Range("B" & row).Value <> "")
If (valueA = Range("B" & row).Value) Then
Range("A" & rowA).Value = ""
Range("A" & row).Value = valueA
doesValueExitInB = True
Exit Do
End If
row = row + 1
Loop 'Loops B col
If Not doesValueExitInB Then
Range("C" & rowA) = Range("A" & rowA)
Range("A" & rowA) = ""
Range("C" & rowA).Interior.ColorIndex = 3
End If
rowA = rowA + 1
Loop ' loops A col
End Sub
Antes da macro
Depois da macro
Haverá problemas com isso, que seu exemplo não pegaria. Se você tiver uma lista longa na coluna A, como mostrei, você substituirá os dados porque um valor substitui outro valor!
Observe que na primeira captura de tela, A5 tem o valor Não. É também aqui que CDE456 começa em B5. Então, verificamos onde o valor de A3 começa na coluna B. CDE456 em ColB começa na linha 5, então é movido para A5 (conforme sua solicitação em sua pergunta)... Kaboom, acabamos de escrever sobre um valor. No entanto, sua pergunta não menciona isso, então presumo que não seja um problema (além disso, você pode simplesmente adaptar o código às suas necessidades).