Elimiar filas duplicadas

12/04/2010 - 22:02 por Murphy | Informe spam
Buenas a todos.


Mi problema es el siguiente:

Quisiera una macro que me ayude a ahorrar trabajo manual. Tenemos que
hay un archivo que contiene 10000 o mas filas y en este archivo hay un
No. de contrato unico y una fecha de atencion, varias fecha de
seguimiento y una fecha de cierre o termino. Se deben eliminar todos
los No. de contrato repetidos (acompañados de su respectiva fila) que
no sean los de fecha mas reciente.

Hoy en día lo hago asi:

A B C
1 No. contrato Fecha No. de repeticiones
2 123 20/03/08 3
3 123 15/03/10 3
4 123 20/03/07 3


En la columna C lo que tengo es un =contar.si(A:A,A2) y asi
sucesivamente hasta la ultima fila ocupada, posteriormente ordeno por
la columna A y B para que el mas reciente siempre aparezca primero y
porteriormente comienzo a eliminar filas manualmente, esto me toma
demasiado tiempo y creo que una macro lo haria mucho mas fácil pero
solo se generar macros mediante el Grabador de Excel y en este caso
interviene la variante de que se debe validar la fecha y No de
contrato juntos por lo que no se como hacerlo.

Me podrian hechar una soga para ver donde puedo encontrar algo que me
ayude. Desde ya muchas Gracias.
 

Leer las respuestas

#1 Benito Merino
12/04/2010 - 22:35 | Informe spam
On 12 abr, 22:02, Murphy wrote:
Buenas a todos.

Mi problema es el siguiente:

Quisiera una macro que me ayude a ahorrar trabajo manual. Tenemos que
hay un archivo que contiene 10000 o mas filas y en este archivo hay un
No. de contrato unico y una fecha de atencion, varias fecha de
seguimiento y una fecha de cierre o termino. Se deben eliminar todos
los No. de contrato repetidos (acompañados de su respectiva fila) que
no sean los de fecha mas reciente.

Hoy en día lo hago asi:

       A                     B         C
1  No. contrato     Fecha       No. de repeticiones
2  123                  20/03/08      3
3  123                  15/03/10      3
4  123                  20/03/07      3

En la columna C lo que tengo es un =contar.si(A:A,A2) y asi
sucesivamente hasta la ultima fila ocupada, posteriormente ordeno por
la columna A y B para que el mas reciente siempre aparezca primero y
porteriormente comienzo a eliminar filas manualmente, esto me toma
demasiado tiempo y creo que una macro lo haria mucho mas fácil pero
solo se generar macros mediante el Grabador de Excel y en este caso
interviene la variante de que se debe validar la fecha y No de
contrato juntos por lo que no se como hacerlo.

Me podrian hechar una soga para ver donde puedo encontrar algo que me
ayude. Desde ya muchas Gracias.



Hola.

La parte importante del trabajo la tienes hecha:

- Tienes ordenado por contrato y descendente de fecha. Esto es
fundamental para simplificar el proceso.

Puedes seguir por macro o bien crearte una fórmula como la siguiente:

a) A través de una fórmula

En D4, por ejemplo

=si(A4£;"Eliminar";"mantener")

Creas un autofiltro, selecciona "eliminar" , marca todas las filas y
edición eliminar (quedarán aquellas marcadas con mantener)

b) Macro

Sub eliminar()
[a3].Select
While ActiveCell.Value <> ""
If ActiveCell.Offset(-1, 0) = ActiveCell Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
End Sub

Saludos,

Benito Merino
Barcelona

Preguntas similares