Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Tengo un problema para lidiar con las horas de turno de noche. Mi tabla de ejemplo tiene este aspecto:
Fecha y horaIniciar | DatetimeFinish | turno | día laborable | Mastercalendar | ORDERID |
13.06.2021 22:55:01 | 13.06.2021 23:45:01 | Turno de noche | Domingo | 13.06.2021 | 12345 |
13.06.2021 23:00:00 | 13.06.2021 23:45:01 | Turno de noche | Domingo | 13.06.2021 | 12346 |
14.06.2021 01:00:00 | 14.06.2021 02:00:00 | Turno de noche | Lunes | 14.06.2021 | 12347 |
14.06.2021 04:00:00 | 14.06.2021 05:00:00 | Turno de noche | Lunes | 14.06.2021 | 12348 |
14.06.2021 06:00:00 | 14.06.2021 11:00:00 | Turno de día | Lunes | 14.06.2021 | 12349 |
14.06.2021 11:00:00 | 18.06.2021 13:00:00 | Turno de día | Lunes | 14.06.2021 | 12350 |
15.06.2021 14:30:00 | 15.06.2021 15:00:00 | Cambio tardío | Martes | 15.06.2021 | 12351 |
16.06.2021 15:00:00 | 16.06.2021 17:00:00 | Cambio tardío | Miércoles | 16.06.2021 | 12352 |
17.06.2021 11:00:00 | 17.06.2021 14:00:00 | Turno de día | Jueves | 17.06.2021 | 12353 |
La columna shift se construye muy típicamente con la instrucción if:
Cuando la hora es de 6 a 14, "Dayshift", 14 a 22 "Lateshift", 22 a 06, "Nightshift".
Pero también hay otra condición, que no sé cómo resolver. Por ejemplo, el turno de noche de los lunes comienza en realidad el domingo a las 22 PM y dura hasta el lunes por la mañana a las 6 AM. Y esto es cierto para cada turno de noche siguiente, donde la hora de inicio es en realidad en la noche de la noche anterior. Así, por ejemplo, cuando quiero filtrar mis datos al lunes 14 de junio y quiero contar los pedidos o resumir el tiempo de duración de ese turno de noche, desafortunadamente me muestra el turno de noche del lunes 12:00:00 -6AM más los datos del mismo día lunes 22PM-24PM. Así que estos dos rangos de tiempo no están perteneciendo juntos, ya que las horas de 22PM-24PM de ese mismo día en realidad ya están perteneciendo al turno de noche del martes. Para el lunes, el turno de noche comienza el domingo 13 a las 22 PM hasta el lunes 14 a las 6:00 AM.
¿Cuál es la mejor práctica aquí? Aynone encontrar el mismo problema antes?
Muchas gracias de antemano.
mejor.
Solved! Go to Solution.
Hay @Applicable88 ,
Cree que para este caso necesitas crear una nueva columna con la fecha correcta, en este caso necesitas comprobar si la hora es superior a las 22 PM y si sí devuelves un día adicional:
if Time.Hour([DatetimeStart]) >= 22 then [Mastercalendar] + #duration(1,0,0,0)else [Mastercalendar]
Ahora debe usar esta columna para realizar el filtrado. Puesto que no es el Editor de consultas, puede eliminar el otro colunm de su tabla
Hola @MFelix , sí yo cam a la misma conclusión mientras que pienso vuestro bien, podría haber salvado el más pequeño de 24 desde entonces después de 24 su comienzo en cero otra vez:
if Time.Hour([StartTime])>=22 and Time.Hour([StartTime]) <= 24 then Date.AddDays([StartTime],1) else [StartTime]
Gracias.
mejor.
Hay @Applicable88 ,
Cree que para este caso necesitas crear una nueva columna con la fecha correcta, en este caso necesitas comprobar si la hora es superior a las 22 PM y si sí devuelves un día adicional:
if Time.Hour([DatetimeStart]) >= 22 then [Mastercalendar] + #duration(1,0,0,0)else [Mastercalendar]
Ahora debe usar esta columna para realizar el filtrado. Puesto que no es el Editor de consultas, puede eliminar el otro colunm de su tabla
Hola @MFelix , sí yo cam a la misma conclusión mientras que pienso vuestro bien, podría haber salvado el más pequeño de 24 desde entonces después de 24 su comienzo en cero otra vez:
if Time.Hour([StartTime])>=22 and Time.Hour([StartTime]) <= 24 then Date.AddDays([StartTime],1) else [StartTime]
Gracias.
mejor.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |