Buscar datos repetidos en intervalos de fecha que se topen.

Tengo un excel con dos columnas de fechas que generan un intervalo de tiempo. Estos intervalos de tiempo están relacionados con ciertos códigos, los cuales necesito saber si es que están duplicados con respecto al rango de fechas de las primeras dos columnas. O sea por ejemplo, tengo este código 123456 que está desde 11-01-2012 hasta 20-01-2012 y luego se repite el mismo código (123456) pero en esta fecha, que topa con la anterior, desde 15-01-2012 hasta 27-01-2012. Por lo tanto es un dato repetido que necesito analizar.

Para el que me responda o la que me

1 respuesta

Respuesta
1

Interesante problema :)

Necesitamos algo mas de información.

Cuantos intervalos de fechas se suelen "topar" solo dos como en tu ejemplo. O puede haber dos que se "topen" varios grupos sin tparse y después 5 grupos que se topen. Si es así el problema es complejo

Si en cambio los grupos de fechas son consecutivos y siempre se topa un grupo con su anterior y posterior es sencillo.

Aclarame a ver.

Adjúntame si es en este segundo caso una serie de 20 filas para har prueba y mandarte la solución

Es como tu dices, de la forma compleja, porque puede ser que un intervalo de tiempo se intersecte con más de un intervalo y también puede ser que un intervalo no se intersecte con ninguno. Y todo esto, solo si el código se repite, porque si el código no es el mismo no importa si es que están intersectados los intervalos de tiempo.

Buscando encontré algo que casi resuelve mi problema, que es esta fórmula.

=(Y(A2>=A1;A2<=B1)) * (CONTAR.SI(C:C;C2)>1)
=(Y(B2>=A1;B2<=B1)) * (CONTAR.SI(C:C;C2)>1)

en las dos columnas subsiguientes a las que quiero comparar.

Se suponía que si se intersecta iba a haber un 1 y si no lo hacían salía un 0, o sea si es que había un código con un 1 y un 0, quería decir que ese código estaba repetido y que además estaba intersectado por el duplicado pero por el lado inicio del intervalo de tiempo. La condición que debía haber para que esta fórmula funcionara era que primero los datos estuviesen primero ordenados por los códigos de barra y luego por la fecha de inicio de los intervalos. Lo hice así, pero el problema es que comenzó luego a marcar los códigos que venían a continuación por sucesión, como si estuviesen duplicados e intersectados en intervalo de tiempo.

ejemplo

1234 (01-01-2013)-(06-01-2013) 0 1

1234 (04-01-2013)-(12-01-2013) 1 0

1235 (13-01-2013)-(20-01-2013) 0 1

1236 (17-01-2013)-(25-01-2013) 1 0

bajo este ejemplo, el duplicado de "1234" está bien, pero no debería marcar con 01 y 10 al "1235" ni al "1236". Supongo que lo hace solo porque es el numero sucesor.

Esta es la aclaración. Sería genial si me ayudas a resolver este problema. Saludos.

Si los ordenas primero por código de barras y después por inicio de periodo, las siguientes fórmulas deben funcionarte

Poniendo los códigos de barra en la columna A, el inicio de periodo en columna B y el fin de periodo en columna C. A partir de la fila 2, pues usamos la 1 como fila vacía.

Para la fila 2

En la columna D esta fórmula =+SI(A2=A1;1;0)

En la columna E está formula =+SI(Y(B2>B1;B2<C1);1;0)

En la columna F esta fórmula =+E2*F2

En las filas, con la columna F=1 son las que tienes que revisar. Dado que están ordenadas, si tienes dos números iguales, solo cuanta como repetida la segunda de ellas.

Espero haberte sido útil. No olvides valorar mi respuesta.

Muchas gracias, me sirvió mucho, la usé para identificar hacia abajo y luego replique la misma fórmula pero con las casillas de arriba y así lograr acotar por completo los períodos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas