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
Después de la macro
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).