Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
LéaGr
Helper I
Helper I

PowerQuery: datos limpios para que los intervalos de tiempo no se superpongan

¡Hola, chicos!

Necesito ayuda para resolver un problema en PowerBI/Powerquery. Necesito limpiar los datos y no puedo trabajar directamente en el origen de datos, por lo que debe hacerse con Powerquery. Básicamente tengo varios intervalos de tiempo que se superponen y me gustaría reemplazar la fecha de inicio / fecha de finalización para que dejen de superponerse.

Aquí hay una versión simplificada de mi conjunto de datos:

tipo de pertenencia de ID de usuario fecha de finalización de la fecha de inicio

1 1 02/01/2020 03/01/2020

1 2 02/20/2020 03/20/2020

2 3 02/05/2020 02/05/2021

3 2 etc.

Los usuarios tienen una membresía para un período determinado (fecha de inicio, fecha de finalización), hay varios tipos de membresías identificables por su tipo (1,2 o 3). Cada vez que se crea una pertenencia, se agrega una línea en la base de datos. En teoría, un usuario solo puede tener una pertenencia a la vez, pero esto no es lo que está sucediendo en la base de datos. Por ejemplo, en el ejemplo anterior cuando el usuario 1 compró una pertenencia de tipo 2 que ya estaba bajo una pertenencia 1, la base de datos creó una nueva línea. Como resultado en la base de datos leemos que entre el 20/02/2020 (fecha de inicio de la membresía 2) y el 03/01/2020 (fecha de finalización de la membresía 1), el usuario 1 tiene dos membresías (un tipo 1 y un tipo 2), pero en realidad esto no es lo que sucede, el nuevo toma el lugar del anterior y necesito que aparezca también en la base de datos. Por lo tanto, necesito limpiar los datos para tener la unicidad 1 usuario 1 membresía a la vez.

Veo dos opciones para lograr eso (tal vez hay más si los ves por favor no dudes en compartir!) :

1/ encontrar una manera con PowerQuery para identificar estos duplicados y reemplazar las fechas para que los intervalos de las membresías para un usuario dado nunca se solapen (en el ejemplo la fecha de finalización de la membresía 1 se convertiría en 19/02/2020 - un día antes del día de inicio de la membresía 2) --> No tengo ni idea de cómo lograrlo, que sería la mejor solución en mi opinión

2/ ya que en su mayoría son cambios ascendentes en los tipos de pertenencia (de la pertenencia 1 a 2 a 3 pero no 3 a 2 o 1), intenté crear una nueva columna que encontrara el valor máximo por usuario (creando una nueva tabla agrupada por ID de usuario con el valor máximo en el tipo de pertenencia) PERO no era dinámica en PowerBI. De hecho, utilizo un filtro de fecha basado en las columnas de fecha de inicio y fecha de finalización y el valor máximo creado no se adaptó a este filtro.

¿Alguien tiene una solución para limpiar los datos y tener una membresía unicity 1 usuario 1 en el momento T (fecha de inicio<T<fecha de finalización)?

Si necesita alguna precisión no dude en preguntar me doy cuenta de que el problema puede no estar bien descrito!

¡¡¡Muchas gracias!!!

Leah

3 REPLIES 3
amitchandak
Super User
Super User

Hola @amitchandak ,

Muchas gracias por la respuesta.

Me ayuda a identificar las superposiciones, pero todavía no sé cómo limpiarlas. ¿Conoce una forma de reemplazar la fecha de finalización de un evento en conflicto con otra por la fecha de inicio de este otro evento, por ejemplo?

Muchas gracias

Mejor

Leah

Hola @amitchandak ,

Gracias por su respuesta! Sí, es porque me permite identificar claramente los solapamientos, pero ahora tendría que "limpiar" estos solapamientos reemplazando las fechas en que hay un conflicto. Tendría que ser capaz de reemplazar automáticamente la fecha de finalización del evento más antiguo por la fecha de inicio menos un día del otro evento. ¿Sabes cómo lograrlo?

¡Muchas gracias!

Mejor

Leah

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors