Anónimo
Tengo 3 tablas que necesito fusionar de una manera específica que no puedo entender. 1 tabla es una lista de fecha / hora en intervalos de 30 minutos. Los otros dos tienen columnas de fecha / hora de inicio y finalización. Necesito fusionar las 3 tablas y convertir las fechas de inicio y finalización en una fila por cada 30 minutos entre la fecha de inicio y finalización. Para hacerlo más complejo, no puedo tener una fila que represente la fecha / hora de finalización. Por ejemplo, si la fecha / hora de inicio es el 24/7/2018 2:30 y la fecha / hora de finalización es el 24/7/2018 3:30, querría filas con una fecha / hora del 24/7/2018 2 : 30 y 24/7/2018 3:30, pero no 3:30. A continuación se muestran datos de ejemplo.
Tabla de fecha / hora:
Fecha y hora
24/7/2018 0:00 |
24/7/2018 0:30 |
24/7/2018 1:00 |
24/7/2018 1:30 |
24/7/2018 2:00 |
24/7/2018 2:30 |
24/7/2018 3:00 |
24/7/2018 3:30 |
24/7/2018 4:00 |
24/7/2018 4:30 |
Tabla de productos 1 (NOTA: la cantidad de productos en el conjunto de datos real será de cientos, por lo que la solución debe manejar una cantidad dinámica de productos):
Tipo de producto Fecha / hora de inicio Fecha / hora de finalización
W |
Falta del tiempo |
24/7/2018 1:00 |
24/7/2018 3:00 |
X |
Falta del tiempo |
24/7/2018 2:00 |
24/7/2018 3:30 |
Tabla de productos 2 (NOTA: la cantidad de productos en el conjunto de datos real será de cientos, por lo que la solución debe manejar una cantidad dinámica de productos):
Tipo de producto Fecha / hora de inicio Fecha / hora de finalización
Y |
Mantenimiento |
24/7/2018 2:30 |
24/7/2018 3:00 |
Z |
Mantenimiento |
24/7/2018 2:00 |
24/7/2018 3:30 |
Aquí está mi resultado deseado:
Fecha / hora Tipo de producto
24/7/2018 0:00 |
||
24/7/2018 0:30 |
||
24/7/2018 1:00 |
W |
Falta del tiempo |
24/7/2018 1:30 |
W |
Falta del tiempo |
24/7/2018 2:00 |
W |
Falta del tiempo |
24/7/2018 2:30 |
W |
Falta del tiempo |
24/7/2018 2:00 |
X |
Falta del tiempo |
24/7/2018 2:30 |
X |
Falta del tiempo |
24/7/2018 3:00 |
X |
Falta del tiempo |
24/7/2018 2:30 |
Y |
Mantenimiento |
24/7/2018 2:00 |
Z |
Mantenimiento |
24/7/2018 2:30 |
Z |
Mantenimiento |
24/7/2018 3:00 |
Z |
Mantenimiento |
24/7/2018 3:30 |
||
24/7/2018 4:00 |
||
24/7/2018 4:30 |
v-danhe-msft
Hola @Anónimo,
Hola,
Según mi prueba, puede consultar los pasos a continuación:
1. Cree ocho columnas para obtener las columnas relacionadas.
W = SI (‘Tabla1′[Date]> = CALCULAR (MIN (‘Tabla2′[Start Date]))&&’Tabla 1′[Date]
X = SI (‘Tabla1′[Date]> = CALCULAR (MAX (‘Tabla2′[Start Date]))&&’Tabla 1′[Date]
Z = SI (‘Tabla1′[Date]> = CALCULAR (MIN (‘Tabla3′[Start Date]))&&’Tabla 1′[Date]<= CALCULAR (MIN ('Tabla3'[End Date])), CALCULAR (MAX ('Tabla3'[Product])))
Y = SI (‘Tabla1′[Date]> CALCULAR (MIN (‘Tabla3′[Start Date]))&&’Tabla 1′[Date]
Columna w = IF (‘Tabla1′[Date]> = CALCULAR (MIN (‘Tabla2′[Start Date]))&&’Tabla 1′[Date]
Columna x = SI (‘Tabla1′[Date]> = CALCULAR (MAX (‘Tabla2′[Start Date]))&&’Tabla 1′[Date]
Columna z = SI (‘Tabla1′[Date]> = CALCULAR (MIN (‘Tabla3′[Start Date]))&&’Tabla 1′[Date]<= CALCULAR (MIN ('Tabla3'[End Date])), CALCULAR (MAX ('Tabla3'[Type])))
Columna y = SI (‘Tabla1′[Date]> CALCULAR (MIN (‘Tabla3′[Start Date]))&&’Tabla 1′[Date]
2. Cree cuatro tablas nuevas y cree una tabla nueva para unir las cuatro tablas.
W = RESUMEN (‘Tabla1’, ‘Tabla1′[Date],’Tabla 1′[W],Tabla 1[Column w])
X = RESUMEN (‘Tabla1’, ‘Tabla1′[Date],’Tabla 1′[X],Tabla 1[Column x])
Y = RESUMEN (‘Tabla1’, ‘Tabla1′[Date],’Tabla 1′[Y],Tabla 1[Column y])
Z = RESUMEN (‘Tabla1’, ‘Tabla1′[Date],’Tabla 1′[Z],Tabla 1[Column z])
Unión = DISTINCT (UNION (‘W’, ‘X’, ‘Y’, ‘Z’))
Ahora puedes ver el resultado.
También puede descargar el archivo PBIX para tener una vista.
https://www.dropbox.com/s/j42h3xs3kqgl4ad/Crossjoin%203%20tables%20with%2030%20minute%20incriments.pbix?dl=0
Saludos,
Daniel él
Anónimo
En respuesta a v-danhe-msft
Hola Daniel,
Gracias por la respuesta. Esta solución funciona bien si mi conjunto de productos se limita a solo los 4 ejemplos que puse en mis datos de muestra, sin embargo, el conjunto de productos real es de cientos. La solución debe ser lo suficientemente dinámica para manejar una cantidad cambiante de productos. Mis disculpas por no indicar eso en mi publicación original.