Como transferir valores únicos de uma coluna para o mesmo valor em outra coluna?

Como transferir valores únicos de uma coluna para o mesmo valor em outra coluna?

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

insira a descrição da imagem aqui

Depois da macro

insira a descrição da imagem aqui

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).

informação relacionada