Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Tengo la siguiente tabla:
MÁQUINA | TIEMPO DE CARGA | TIEMPO DE DESCARGA | Tiempo de proceso (descarga-carga) |
M01 | 2022/08/04 6:32:00 | 2022/08/04 14:42:00 | 490 |
M07 | 2022/08/04 6:15:00 | 2022/08/04 13:57:00 | 462 |
M03 | 2022/08/04 3:24:00 | 2022/08/04 11:35:00 | 491 |
M06 | 2022/08/04 2:02:00 | 2022/08/04 9:45:00 | 463 |
M02 | 2022/08/04 1:02:00 | 2022/08/04 9:28:00 | 506 |
M05 | 2022/08/04 0:20:00 | 2022/08/04 7:58:00 | 458 |
M04 | 2022/08/03 21:54:00 | 2022/08/04 6:13:00 | 499 |
M01 | 2022/08/03 20:51:00 | 2022/08/04 5:18:00 | 507 |
M08 | 2022/08/03 20:33:00 | 2022/08/04 4:15:00 | 462 |
M07 | 2022/08/03 19:20:00 | 2022/08/04 3:25:00 | 485 |
M06 | 2022/08/03 15:35:00 | 2022/08/03 23:22:00 | 467 |
M05 | 2022/08/03 15:04:00 | 2022/08/03 22:46:00 | 462 |
M03 | 2022/08/03 14:31:00 | 2022/08/03 22:36:00 | 485 |
M08 | 2022/08/03 12:07:00 | 2022/08/03 19:51:00 | 464 |
M07 | 2022/08/03 10:58:00 | 2022/08/03 18:41:00 | 463 |
M04 | 2022/08/03 10:02:00 | 2022/08/03 18:15:00 | 493 |
M02 | 2022/08/03 7:44:00 | 2022/08/03 15:58:00 | 494 |
M05 | 2022/08/03 5:59:00 | 2022/08/03 13:41:00 | 462 |
M06 | 2022/08/03 5:24:00 | 2022/08/03 13:09:00 | 465 |
M03 | 2022/08/03 4:27:00 | 2022/08/03 12:34:00 | 487 |
M01 | 2022/08/03 2:54:00 | 2022/08/03 11:10:00 | 496 |
M08 | 2022/08/03 1:06:00 | 2022/08/03 8:50:00 | 464 |
Proceso = DESCARGAR-CARGAR*1440
Somos una operación 24/7... Turno M = 7am-7pm y turno E = 7pm-7am. ¿Cómo puedo asignar el número correcto de minutos a cada turno? En concreto, la producción que cruza la medianoche me tiene desconcertado.
¡Cualquier ayuda es muy apreciada!
Olvidé modificar algo en el cálculo del turno E, ahora se ha cambiado. Por favor, pruebe:
M shift =
VAR _a =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _b =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 19, 0, 0 )
VAR _c =
DATE ( YEAR ( [UNLOADTIME] ), MONTH ( [UNLOADTIME] ), DAY ( [UNLOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _sameday =
SWITCH (
TRUE (),
[LOADTIME] < _a
&& [UNLOADTIME] < _b, DATEDIFF ( _a, [UNLOADTIME], MINUTE ),
[LOADTIME] < _a
&& [UNLOADTIME] >= _b, DATEDIFF ( _a, _b, MINUTE ),
[LOADTIME] >= _a
&& [UNLOADTIME] < _b, DATEDIFF ( [LOADTIME], [UNLOADTIME], MINUTE ),
[LOADTIME] >= _a
&& [LOADTIME] <= _b
&& [UNLOADTIME] >= _b, DATEDIFF ( [LOADTIME], _b, MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] >= _b, 0
)
VAR _diffday =
SWITCH (
TRUE (),
[LOADTIME] < _b
&& [UNLOADTIME] < _c, DATEDIFF ( [LOADTIME], _b, MINUTE ),
[LOADTIME] < _b
&& [UNLOADTIME] >= _c, DATEDIFF ( [LOADTIME], _b, MINUTE ) + DATEDIFF ( _c, [UNLOADTIME], MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] < _c, 0,
[LOADTIME] >= _b
&& [UNLOADTIME] >= _c, DATEDIFF ( _c, [UNLOADTIME], MINUTE )
)
RETURN
IF ( _a = _c, _sameday, _diffday )
E shift =
VAR _a =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _b =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 19, 0, 0 )
VAR _c =
DATE ( YEAR ( [UNLOADTIME] ), MONTH ( [UNLOADTIME] ), DAY ( [UNLOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _sameday =
SWITCH (
TRUE (),
[LOADTIME] < _a
&& [UNLOADTIME] < _b, DATEDIFF ( [LOADTIME], _a, MINUTE ),
[LOADTIME] < _a
&& [UNLOADTIME] >= _b, DATEDIFF ( [LOADTIME], _a, MINUTE ) + DATEDIFF ( _b, [UNLOADTIME], MINUTE ),
[LOADTIME] >= _a
&& [UNLOADTIME] < _b, 0,
[LOADTIME] >= _a
&& [LOADTIME] <= _b
&& [UNLOADTIME] >= _b, DATEDIFF ( _b, [UNLOADTIME], MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] >= _b, DATEDIFF ( [LOADTIME], [UNLOADTIME], MINUTE )
)
VAR _diffday =
SWITCH (
TRUE (),
[LOADTIME] < _b
&& [UNLOADTIME] < _c, DATEDIFF ( _b, [UNLOADTIME], MINUTE ),
[LOADTIME] < _b
&& [UNLOADTIME] >= _c, DATEDIFF ( _b, _c, MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] < _c, DATEDIFF ( [LOADTIME], [UNLOADTIME], MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] >= _c, DATEDIFF ( [LOADTIME], _c, MINUTE )
)
RETURN
IF ( _a = _c, _sameday, _diffday )
Resultado final:
Saludos
Jianbo Li
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Funciona muy bien, gracias!!
Por favor, pruebe:
M shift =
VAR _a =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _b =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 19, 0, 0 )
VAR _c =
DATE ( YEAR ( [UNLOADTIME] ), MONTH ( [UNLOADTIME] ), DAY ( [UNLOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _sameday =
SWITCH (
TRUE (),
[LOADTIME] < _a
&& [UNLOADTIME] < _b, DATEDIFF ( _a, [UNLOADTIME], MINUTE ),
[LOADTIME] < _a
&& [UNLOADTIME] >= _b, DATEDIFF ( _a, _b, MINUTE ),
[LOADTIME] >= _a
&& [UNLOADTIME] < _b, DATEDIFF ( [LOADTIME], [UNLOADTIME], MINUTE ),
[LOADTIME] >= _a
&& [LOADTIME] <= _b
&& [UNLOADTIME] >= _b, DATEDIFF ( [LOADTIME], _b, MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] >= _b, 0
)
VAR _diffday =
SWITCH (
TRUE (),
[LOADTIME] < _b
&& [UNLOADTIME] < _c, DATEDIFF ( [LOADTIME], _b, MINUTE ),
[LOADTIME] < _b
&& [UNLOADTIME] >= _c, DATEDIFF ( [LOADTIME], _b, MINUTE ) + DATEDIFF ( _c, [UNLOADTIME], MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] < _c, 0,
[LOADTIME] >= _b
&& [UNLOADTIME] >= _c, DATEDIFF ( _c, [UNLOADTIME], MINUTE )
)
RETURN
IF ( _a = _c, _sameday, _diffday )
E shift =
VAR _a =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _b =
DATE ( YEAR ( [LOADTIME] ), MONTH ( [LOADTIME] ), DAY ( [LOADTIME] ) )
+ TIME ( 19, 0, 0 )
VAR _c =
DATE ( YEAR ( [UNLOADTIME] ), MONTH ( [UNLOADTIME] ), DAY ( [UNLOADTIME] ) )
+ TIME ( 7, 0, 0 )
VAR _sameday =
SWITCH (
TRUE (),
[LOADTIME] < _a
&& [UNLOADTIME] < _b, DATEDIFF ( [LOADTIME], _a, MINUTE ),
[LOADTIME] < _a
&& [UNLOADTIME] >= _b, DATEDIFF ( [LOADTIME], _a, MINUTE ) + DATEDIFF ( _b, [UNLOADTIME], MINUTE ),
[LOADTIME] >= _a
&& [UNLOADTIME] < _b, 0,
[LOADTIME] >= _a
&& [LOADTIME] <= _b
&& [UNLOADTIME] >= _b, DATEDIFF ( _b, [UNLOADTIME], MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] >= _b, DATEDIFF ( [LOADTIME], [UNLOADTIME], MINUTE )
)
VAR _diffday =
SWITCH (
TRUE (),
[LOADTIME] < _b
&& [UNLOADTIME] < _c, DATEDIFF ( _a, [UNLOADTIME], MINUTE ),
[LOADTIME] < _b
&& [UNLOADTIME] >= _c, DATEDIFF ( _a, _b, MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] < _c, DATEDIFF ( [LOADTIME], [UNLOADTIME], MINUTE ),
[LOADTIME] >= _b
&& [UNLOADTIME] >= _c, DATEDIFF ( [LOADTIME], _b, MINUTE )
)
RETURN
IF ( _a = _c, _sameday, _diffday )
Resultado final:
Saludos
Jianbo Li
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Muchas gracias!! Está cerca, pero estoy recibiendo algunos valores que no están volviendo correctos ... parecen unidades que cruzan la medianoche:
Agregué una columna de tiempo total como valiodación y obtengo valores grandes negativos o incorrectos cuando las unidades cruzan más allá de la medianoche.
Gracias por la respuesta... esa es una solución parcial. Lo que necesito poder hacer es asignar los minutos a los turnos M y E en una operación de 7-7 ... por ejemplo, si una unidad carga a las 5 p.m. y descarga a las 10 p.m., entonces el turno M obtiene 120 minutos y el turno E obtiene 180 minutos. Ese es uno de los ejemplos más sencillos... unidades que se cargan a las 6 de la tarde y descargan a las 2 de la mañana, por ejemplo. El turno M obtendría 60 minutos y el turno E 420 minutos. Cruzar la medianoche añade otro nivel de complejidad
En Power Query, pruebe esta expresión en una columna personalizada:
Duration.TotalMinutes([UNLOADTIME] - [LOADTIME])