Buscar registros únicos o duplicados con fecha más reciente

Quiero plantearles a todos ustedes un caso muy peculiar que me gustaría resolvieran en su tiempo libre y así entrenen un poco con Excel para que adquieran más habilidades con esta aplicación.

El tema que quiero tratar se basa principalmente en la extracción de registros de una base de datos que contienen registros únicos y duplicados. Para ello quiero que observes detenidamente la imagen que presento a continuación (clic para ampliar).


Como pudiste analizar en la imagen, se trata de una base de datos que relaciona en su primera y segunda columna, el código y el nombre de personas (respectivamente) que pueden encontrarse de manera única o duplicada dentro de los registros de la base de datos.

En la última columna se encuentran registrados valores de fecha; estas fechas son únicas para cada persona. Es decir, si una persona se encuentra duplicada en la base de datos, los valores de fecha correspondientes para cada registro duplicado de esa persona siempre serán diferentes uno del otro.

Por ejemplo, el código 2826 (remarcado con rojo) que relaciona a María Quevedo se encuentra dos veces dentro de la base de datos. Ambos registros poseen fechas diferentes (15/06/2016 y 21/02/2017).

¿Cuál es el problema?

Se requiere extraer de la base de datos todos los registros de manera única (uno sólo por persona cuando existan duplicados) del cual su fecha asociada corresponda a la más reciente o la más actual.

Por ejemplo, para el código 2826 (remarcado con rojo) que relaciona a María Quevedo se debería extraer el registro con fecha 21/02/2017 (relleno amarillo).

Tenga en cuenta que los registros de la base de datos pueden estar ordenados en cualquier posición. Por ejemplo, para el código 2826 (remarcado con rojo) debe extraerse el segundo registro (relleno amarillo); en cambio para el código 22201 (remarcado con azul) que relaciona a Manuel Ubillus debe extraerse el sexto registro (relleno amarillo).

Para identificar un registro que corresponda a una persona que esté duplicada sólo ten en cuenta las columnas: Código y Nombre. Al finalizar el ejercicio sólo deberás extraer únicamente los registros con relleno amarillo. Imagina una base de datos con más de 500 registros.

Déjame tu solución en los comentarios de más abajo. Recuerda, puedes utilizar cualquier método que desees, lo único es que los extraigas de la base de datos a otro lugar de una hoja de Excel sin hacerlo manualmente (usa fórmulas, funciones, código VBA, lo que quieras). Reto personal - No para el premio.

Posdata: mientras escribo esto yo ya he imaginado tres posibles soluciones.



Como premio para la primera persona que me entregue una solución válida (utilizando sólo las herramientas de la interfaz de usuario de Excel - No VBA), le entregaré una suscripción por un año a la Suite de Office 365. La solución que implementes debes describirla muy bien en los comentarios del post. Válido hasta el 30 de julio de 2017 - inclusive.

Ver la resolución en video.

Descargar el libro de Excel.

12 comentarios:

  1. Hola amigo, no se de hace cuanto tiempo es la publicación o si ya has entregado la licencia office, sin embargo te comparto mi solución al problema para que me digas que opinas. la he pueso en mi blog en este link http://www.excelcartagena.com/2017/07/solucion-reto-excel-hecho-facil.html

    Saludos

    ResponderBorrar
    Respuestas
    1. Hola Carlos, aún sigue vigente la propuesta y el premio. Sin embargo, tienes que describir la resolución acá (en los comentarios de este post), acabo de ver tu publicación y es muy valida, pero necesito que la describas en este post. Si quieres participar y ganarte la suscripción, dale, escribe. Por favor se detallado, no te quedes con nada y danos una excelente explicación. Saludos.

      Borrar
  2. Para resolver el reto partamos del hecho que la función BuscarV va a escoger siempre el primer registro cuando encuentra el mismo valor en una base de datos.

    Teniendo lo anterior en cuenta, los pasos para extraer solamente los registros únicos con la mayor fecha son:

    1. Copiar todos los posibles códigos en una nueva hoja de Excel donde vamos a realizar la nueva base de datos y "eliminar los duplicados",

    2. Usar la función BuscarV para rellenar todos los campos de nuestra nueva base de datos, cambiando el respectivo indicador de columnas (2, 3, 4, 5)

    3.En este momento ya tenemos una nueva base de datos con registro unicos usando BuscarV, sin embargo aun no se cumple el criterio de la fecha ams reciente.

    4. Ahora, vamos a ordenar la base de datos original utilizando un orden personalizado con dos criterios. Primero por "Cod" y luego por "Fecha" de Mayor a menor.

    Tendremos nuestra base de datos ordenada por código y luego por fechas en orden de mayor a menor.

    Luego de aplicar este nuevo orden vemos como automáticamente nuestra Base de Datos de registros extraídos con BuscarV se actualiza, mostrando solo los registros correspondientes a la fecha más reciente

    ResponderBorrar
    Respuestas
    1. Valido (te has ganado la suscripción).

      Por favor facilítame un email para el contacto y un username para crearte la cuenta a Office 365.

      Una vez hayas ingresado al portal de Office 365 y tengas el servicio habilitado, responde este comentario indicando que ya tienes el acceso y estás gozando del beneficio por un año.

      Saludos.

      Borrar
  3. Buenas noches

    Te comparto mi solucion:

    Haciendo un respaldo de en otra hoja o libro de excel para conservar la data original.

    1 Ubicarse en la cinta en el menu datos
    2 Filtraria la fecha de mayor a menor
    3 Seleccionando la columa donde esta cod en la cinta datos le doy en quitar duplicados ampliando la seleccion.
    4 Selecciono solo la columna con el titulo Cod y le doy aceptar.


    No se si me aproxime pero mi aporte es mas participativo.

    y gracias por tu macro de calentario. muy genial

    ResponderBorrar
  4. Muchas gracias por compartir sus conocimientos
    Requieroo asignar visitas, se asigna fecha de inicio de visita y fecha de fin de visita
    Ejem
    Vendedor. Fecha Inic. Fecha fin
    A 01-02-19 30-2-19
    A 05-02-10 3-3-19
    En este caso deberia indicarme excel que ya se encuentra asignado a ese fecha.
    Gracias

    ResponderBorrar
  5. Hola

    Intente usar estos mismo datos pero el google docs y no funciona por ejemplo al traer la última fecha me trae la de todos los datos y no la de una persona en particular . alguno sabe se hay solución ?

    ResponderBorrar
  6. Estoy intentado repetir tu fórmula pero me sale #¡VALOR! desde el principio, esto es, desde el momento de aplicar la fórmula lógica del código, ¿puedes ayudarme?, me gustaría aplicar esta fórmula para crear una hoja de cálculo que valore las existencias de un inventario automáticamente por el coste medio ponderado, para ello necesito buscar el valor más reciente de un registro de coincidencias, en definitiva lo que tú estás haciendo en tu hoja de cálculo. Te agradecería mucho que me ayudaras. Un saludo.

    ResponderBorrar
  7. Estoy intentado repetir tu fórmula pero me sale #¡VALOR! desde el principio, esto es, desde el momento de aplicar la fórmula lógica del código, ¿puedes ayudarme?, me gustaría aplicar esta fórmula para crear una hoja de cálculo que valore las existencias de un inventario automáticamente por el coste medio ponderado, para ello necesito buscar el valor más reciente de un registro de coincidencias, en definitiva lo que tú estás haciendo en tu hoja de cálculo. Te agradecería mucho que me ayudaras. Un saludo.

    ResponderBorrar
  8. Me encanta tus publicaciones. Andrés

    ResponderBorrar
  9. Como puedo suscribirme a tu canal??

    ResponderBorrar