Macro para quitar duplicados según la fecha

Tengo A y B

A: id1, id2, id3, id2, id1

B: 07-06, 07-06, 07-06, 08-06, 08-06

Quiero quitar los duplicados según la fecha más actual del duplicado o sea:

Si tengo id1-07-06 y id1-08-06 quiero obtener solo el id1-08-06

¿Qué puedo hacer?

Ya use filtro avanzado, quitar duplicados(sirve pero no me respeta fechas), una tabla dinámica, filtré y nada...

2 respuestas

Respuesta
1

 H o l a:

Te anexo la macro.

La macro está preparada para ejecutarse sobre las columnas A y B, el resultado te lo dejará en las columnas E y D.

La macro supone que en la fila 1 de A y B tienes encabezado.

Ejecuta la macro sobre la hoja con datos.

Sub QuitarDuplicados()
'Por.Dante Amor
    Set h1 = ActiveSheet
    h1.Columns("D:E").ClearContents
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Columns("A:A").Copy h1.Range("D1")
    h1.Range("D1:D" & u).RemoveDuplicates Columns:=1, Header:=xlYes
    '
    With h1.Sort
        .SortFields.Clear: .SortFields.Add Key:=h1.Range("B2:B" & u)
        .SetRange h1.Range("A1:B" & u): .Header = xlYes: .Apply
    End With
    '
    For i = 2 To h1.Range("D" & Rows.Count).End(xlUp).Row
        Set b = h1.Columns("A").Find(h1.Cells(i, "D"), LookAt:=xlWhole, SearchDirection:=xlPrevious)
        h1.Cells(i, "E") = h1.Cells(b.Row, "B")
    Next
    MsgBox "Proceso Terminado"
End Sub

Respuesta
1

Entiendo que lo primero que se necesitará es una lista de los valores únicos en la columna A.
En la fila 1 de cualquier columna vacía (por ejemplo la E) iría la fórmula:
=INDICE(A:A;K.ESIMO.MENOR(SI(COINCIDIR($A$1:$A$5;$A$1:$A$5;0)=FILA($1:$5);FILA($1:$5));FILA()))
Que devolverá el primer valor único de la columna A. Copiando y pegando esta fórmula hacia abajo irán apareciendo el resto de valores únicos, y cuando no queden más comenzará a aparecer el error #¡NUM!
Para averiguar la fecha más alta correspondiente a lo que haya en E1, la fórmula en F1 sería:
=SI.ERROR(INDICE(B:B;MAX(SI($A$1:$A$5=E1;FILA($1:$5))));"")
Esta fórmula habría que copiarla y pegarla hacia abajo en la columna F, tantas filas como las que estén ocupadas en la columna E.

Tres cosas a tener en cuenta:
1) Ambas fórmulas son matriciales, por lo que hay que introducirlas pulsando mayúsculas control entrada al mismo tiempo

2) Quizás haya que sustituir los puntos y comas por comas, dependiendo del separador de listas que esté establecido en la configuración regional del PC.

3) Habrá que aplicar formato de fecha a las celdas donde estén las fórmulas en la columna F, ya que por defecto Excel pondrá formato numérico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas