¿Cómo desplazar valores únicos hacia abajo en una columna al mismo valor en otra columna?

¿Cómo desplazar valores únicos hacia abajo en una columna al mismo valor en otra columna?

Mi amigo tiene dos columnas donde una tiene valores únicos y otra columna tiene esos mismos valores pero también duplicados como se muestra a continuación.

Column 1    Column 2
ABC123      ABC123
CDE456      ABC123
EFG789      ABC123
            ABC123
            CDE456
            CDE456
            CDE456
            EFG789

A veces, la columna 2 no siempre tiene todos los valores, en cuyo caso creo que debe quedar claro que no existen en la columna 2. Lo que quiere hacer es que los valores de la columna 1 cambien al número de fila. del mismo valor en la columna de valores duplicados como se muestra a continuación.

Column 1    Column 2
ABC123      ABC123
            ABC123
            ABC123
            ABC123
CDE456      CDE456
            CDE456
            CDE456
EFG789      EFG789

¿Hay alguna manera de hacer esto en Excel sin problemas con una macro o una función interna de Excel?

Respuesta1

Esto hace lo que solicitan sus preguntas.

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 de la macro

ingrese la descripción de la imagen aquí

Después de la macro

ingrese la descripción de la imagen aquí

Habrá problemas con esto, que su ejemplo no detectará. Si tiene una lista larga en la columna A, como he mostrado, sobrescribirá los datos porque un valor reemplaza a otro valor.

Tenga en cuenta que, en la primera captura de pantalla, A5 tiene el valor No. Aquí también es donde CDE456 comienza en B5. Entonces, verificamos dónde comienza el valor de A3 en la columna B. CDE456 en ColB comienza en la fila 5, por lo que se mueve a A5 (según su solicitud en su pregunta)... Kaboom, acabamos de escribir un valor. Sin embargo, su pregunta no menciona esto, por lo que asumiré que no es un problema (además, siempre puede adaptar el código a sus necesidades).

información relacionada