Macro para eliminar filas duplicadas

22/07/2007 - 01:20 por Rucoma | Informe spam
Hola,
Tengo una lista de más de 1000 registros de la que tengo que quedarme
con las filas NO duplicadas. Es decir:

Tabla origen:

A B C
1 X Y Z
2 X Y A
3 X Y Z

Tabla resultado:

A B C
1 X Y A

Las filas que sean exactamente iguales en todas las columnas deben
eliminarse (ambas).
Alguien me podría echar un cable con este tema?
Muchas gracias y saludos,
Rubén

Preguntas similare

Leer las respuestas

#6 Carlos
23/07/2007 - 00:22 | Informe spam
El Excel 2007 tiene incorporada una funcion para eliminar duplicados..
Valdria la pena que la pruebes. A mi me funciona perfectamente

Saludos

Carlos

"Rucoma" escribió:

Julián,
He probado tu solución y va muy bien. El problema es que es un
procedimiento que no tengo que hacer yo, si no otra persona de mi
trabajo y no tiene muchas ganas de andar ponindo formulas (supongo que
entiendes a lo que me refiero ;-)). Por eso necesito una macro, porque
de esta manera le da a un boton y tiene l problema solucionado.
Gracias por tu valiosa ayuda.
Rubén

On 22 jul, 13:41, "julian-vlc-sp" wrote:
> > > ¡Importante!: Colabora con el grupo.Contesta a este mensaje
> y dinos si te sirvió o no la respuesta dada. Muchas gracias.
> > >
> Si lo tienes que hacer muchas veces, al igual necesitas un macro y ahí no
> puedo ayudarte.
>
> Si es solo una vez, o de vez en cuando que tienes que hacerlo, puedes probar
> lo siguiente:
>
> En la columna D puedes poner
>
> ¡&B1&C1
>
> en la columna E puedes poner
>
> =CONTAR.SI($D$1:$D$5;D1)
>
> Después ordena los datos por la columna E y tendrás las filas preparadas
> para eliminar fácilmente las que desees.
>
> SALUDOS.
> Julián-Valencia-Españahttp://ijulian.iespana.es/
>
> "Rucoma" escribió en el mensajenews:
> Hola,
> Tengo una lista de más de 1000 registros de la que tengo que quedarme
> con las filas NO duplicadas. Es decir:
>
> Tabla origen:
>
> A B C
> 1 X Y Z
> 2 X Y A
> 3 X Y Z
>
> Tabla resultado:
>
> A B C
> 1 X Y A
>
> Las filas que sean exactamente iguales en todas las columnas deben
> eliminarse (ambas).
> Alguien me podría echar un cable con este tema?
> Muchas gracias y saludos,
> Rubén



Respuesta Responder a este mensaje
#7 Ivan
23/07/2007 - 00:40 | Informe spam
hola Ruben,

solo una aclaracion IMPORTANTE para el caso de que fueran mas de 3
columnas. Aparte de cambiar lo que (creo que ) resulta evidente, debes
tener especial cuidado con la forma de ordenar el rango. Como el
maximo de campos de ordenacion es de 3 (al menos hasta el 2003),
deberias ir ordenando 'por grupos' pero inversamente. Por ejemplo, si
fuesen 7 columnas, de la A a la G, deberias hacer algo asi:

Range("a1:g" & uf).Sort _
key1:=.[g2], order1:=xlAscending, _
header:=xlYes
Range("a1:g" & uf).Sort _
key1:=.[d2], order1:=xlAscending, _
key2:=.[e2], order2:=xlAscending, _
key3:=.[f2], order3:=xlAscending, _
header:=xlYes
Range("a1:g" & uf).Sort _
key1:=.[a2], order1:=xlAscending, _
key2:=.[b2], order2:=xlAscending, _
key3:=.[c2], order3:=xlAscending, _
header:=xlYes

bueno, solo por si acaso, pues es una parte fundamental de la macro
(por supuesto acuerdate de adaptar el resto de condiciones)

un saludo
Ivan
Respuesta Responder a este mensaje
#8 Rucoma
23/07/2007 - 01:05 | Informe spam
Ivan,
He hecho las modificaciones pertinentes y la macro va de lujo. No te
imaginas lo útil que me es.
Gracias por tu ayuda.
Saludos,
Rubén
On 23 jul, 00:40, Ivan wrote:
hola Ruben,

solo una aclaracion IMPORTANTE para el caso de que fueran mas de 3
columnas. Aparte de cambiar lo que (creo que ) resulta evidente, debes
tener especial cuidado con la forma de ordenar el rango. Como el
maximo de campos de ordenacion es de 3 (al menos hasta el 2003),
deberias ir ordenando 'por grupos' pero inversamente. Por ejemplo, si
fuesen 7 columnas, de la A a la G, deberias hacer algo asi:

Range("a1:g" & uf).Sort _
key1:=.[g2], order1:=xlAscending, _
header:=xlYes
Range("a1:g" & uf).Sort _
key1:=.[d2], order1:=xlAscending, _
key2:=.[e2], order2:=xlAscending, _
key3:=.[f2], order3:=xlAscending, _
header:=xlYes
Range("a1:g" & uf).Sort _
key1:=.[a2], order1:=xlAscending, _
key2:=.[b2], order2:=xlAscending, _
key3:=.[c2], order3:=xlAscending, _
header:=xlYes

bueno, solo por si acaso, pues es una parte fundamental de la macro
(por supuesto acuerdate de adaptar el resto de condiciones)

un saludo
Ivan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida