Buscar duplicados

Hola a todos, me gustaría saber como ordenar campos de una columna en relación a otra.
Me explico en la columna A, tengo 30 filas con nombres distintos, en B unas 10 filas con nombres iguales que A pero desordenados y en C tengo otras 10 filas con los importes de B, Lo que quiero es que me identifique los valores de B igual que A, y me coloque B y C en el mismo orden que A, y que las celdas que no me encuentre los deje en blanco.
Muchas Gracias

1 Respuesta

Respuesta
1
Si quieres mantener todos los datos necesitamos cortar las columnas B y C y llevarla a otra posición por ejemplo DE y E ahora hacer la operación de comparación y según vaya encontrando los valores los vuelva a cortar y los lleve a B y C y si no los encuentra dejara las columnas B y C en blanco. Mira si esto te sirve, sería con una macro.
>Un saludo
>Julio
Hola Julio, Gracias por la aclaración, pero no me entero.
Lo que tengo es
    A                       B           C
Amarillo              Caki         3
Berenjena          Rojo         5
Caki - -
Fucsia - -
Rojo - -
Quiero que me quede
     A B C
Amarillo - -
Berenjena - -
Caki Caki 3
Fucsia - -
Rojo Rojo 5
No encuentro la función que me corte o copie B y C y lo ordene automáticamente
Gracias
Claro te dije que sería una macro de comparar y ordenadar según quieres, exactamente eso es lo que te dije que podíamos hacer, pero para poder hacer bien y con menos problemas te dije que empezamos cortando todos los valores de las columnas B y C y nos lo llevamos a DE y E por ejemplo si esas columnas las tenemos libres.
Ahora la macro hará esto, la primera celda de A1 la ponemos en una variable, en tu caso
Amarillo, ahora le décimo, busca amarillo en la columna DE, si lo encuentras corta esa celda y la contigua y la pegas en la columna adyacente de Amarillo, y sino lo encuentras pasa a la siguiente celda en tu ekemplo berenjena y vuelves ha hacer lo mismo.
Te pongo la macro y la pruebas, si las columnas DE y E no están vacías que las tienes ocupadas pues tu cambia las letras por columnas vacías en la macro, total al final van a quedar vacía nuevamente, porque las habremos cortado y llevado a B y C nuevamente, siempre que estas coincidan con valores de A que si no se quedarán en las columnas que llamaremos de paso.
Bueno aquí te dejo la macro:
Private Sub Busca_Copia()
Dim cel As String
Dim color As String
Range("B1:C65536").Select
Selection.Cut
Range("D1").Select
ActiveSheet.Paste
Range("D1").Select
cel = ActiveCell.Address
color = ActiveCell.Value
Range(ActiveCell, ActiveCell.Offset(0, 1)).Copy
Range("A1").Select
ActiveCell.End(xlDown).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
On Error Resume Next
Set dat = Selection.Find(What:=color, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select
ActiveCell.Offset(0, 1).PasteSpecial
Do While color <> ""
Range(cel).Select
ActiveCell.Offset(1, 0).Select
cel = ActiveCell.Address
color = ActiveCell.Value
Range(ActiveCell, ActiveCell.Offset(0, 1)).Copy
Range("A1").Select
ActiveCell.End(xlDown).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
On Error Resume Next
Set dat = Selection.Find(What:=color, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select
ActiveCell.Offset(0, 1).PasteSpecial
Loop
Range("D1:E65536").Select
Selection.Clear
End Sub
Pruebalá y me cuentas
>Un saludo
>Julio
Muchas Gracias Julio,
Me has servido de gran ayuda,
solo que ahora intento hacer lo mismo con una celda más, osea B C DE, y no lo consigo.
Pero Muchas Gracias por todo
Julio, Me podrías corregir la macro para 3 celdas o cuatro, ¿en vez de doS?
Muchas Gracias
Entiendo que ahora no solo quieres llevarte los datos de las columnas (antes A y B ) ahora A, B, C, y DE pues tampoco es tan difícil vamos a ver te pongo la nueva macro la analizas linea a linea (te la imprimes) y ves donde esta la diferencia y aprenderás ( que un poco de eso hemos echo todos), esta es la macro:
Private Sub Busca_Copia()
Dim cel As String
Dim color As String
Range("B1:D65536").Select
Selection.Cut
Range("E1").Select
ActiveSheet.Paste
Range("E1").Select
cel = ActiveCell.Address
color = ActiveCell.Value
Range(ActiveCell, ActiveCell.Offset(0, 2)).Copy
Range("A1").Select
ActiveCell.End(xlDown).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
On Error Resume Next
Set dat = Selection.Find(What:=color, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select
ActiveCell.Offset(0, 1).PasteSpecial
Do While color <> ""
Range(cel).Select
ActiveCell.Offset(1, 0).Select
cel = ActiveCell.Address
color = ActiveCell.Value
Range(ActiveCell, ActiveCell.Offset(0, 2)).Copy
Range("A1").Select
ActiveCell.End(xlDown).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
On Error Resume Next
Set dat = Selection.Find(What:=color, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select
ActiveCell.Offset(0, 1).PasteSpecial
Loop
Range("E1:G65536").Select
Selection.Clear
End Sub
Cuatro cosas había que cambiar.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas