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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Obtener la duración entre dos fechas y hora distribuidas correctamente en el momento de la ocurrencia

Hola

Quiero preguntar cómo puedo calcular la duración correctamente en el momento de ocurrencia. Por ejemplo, tengo datos de muestra en la captura de pantalla. Se trata de una máquina que está constantemente buscando cajas y solo puede hacer un pedido tras otro. Por lo que debe quedar claro que esta máquina no puede trabajar más de 24 horas al día o supera una carga de trabajo por día de más del 100%:

Applicable88_3-1633194448284.png

Tomo la Orden No. 1234 como ejemplo: Es una orden que duró 88 horas. Pero solo 1 hora de ese tiempo de duración ocurrió el 1 de enero, porque comenzó un 2021-01-01 11PM. El problema que tengo es que los dos gráficos de barras no reflejan las horas correctas por día ni la carga de trabajo correcta por día. Porque la duración siempre cae completamente en el día donde comenzó el pedido, que es StartTime. Por lo tanto, la carga de trabajo de una hora para 2021-01-01 debería resultar en una carga de trabajo de 1/24, que es 4,2%, 100% por cada día intermedio y 15 horas / 24 = 62,5% para ese día donde terminó. (2021-01-05 15PM=15 horas de carga de trabajo ese último día)

Por otro lado, la Orden No. 1237 solo duró 1 hora, pero también terminó en el mismo día, por lo que no hay problemas aquí.

Espero que haya una posibilidad de calcular para que las horas se asignen correctamente a la fecha de ocurrencia.

Cualquier ayuda es muy apreciada.

Muchas gracias.

Mejor.

Archivo PBIX para SampleData:

https://drive.google.com/drive/folders/1dmwyfPPyoITKvQF7VtuxEJuIwJKBhSv-?usp=sharing

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hay @Applicable88 ,

De acuerdo con su descripción, pruebe la siguiente fórmula MEASURE:

work = 
IF (
    DAY ( MAX ( 'Order'[FinishTime] ) ) = DAY ( MAX ( 'Order'[StartTime] ) ),
    ( HOUR ( MAX ( 'Order'[FinishTime] ) ) - HOUR ( MAX ( 'Order'[StartTime] ) ) ) / 24,
    ( 24 - HOUR ( MAX ( 'Order'[StartTime] ) ) ) / 24
)

vhenrykmstf_0-1633500336295.png

Si la comprensión está desactivada, describa más a fondo sus requisitos y proporcione capturas de pantalla de los resultados deseados. Responderé a sus preguntas lo antes posible.

Esperamos su respuesta.


Saludos
Henrio


Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola @v-henryk-mstf,muchas gracias por el esfuerzo. Los valores siguen sin ser correctos. Como puede ver, el primer pedido abarca más de 3,5 días, pero entre el 2021-01-01 y el 2021-01-05 no hay barras. La hora en que nos devolvieron aquí, tampoco es como debería mostrarse.

Trato de describir en detalle:

OrderID 1234 dura 88 horas en total. Comenzó el 2021-01-01 a las 11PM. El primer gráfico es correcto, ya que se asigna 1 hora al primer día de inicio: 1 hora / 24 horas son 4,17%

Después debería haber otras 3 barras para 2021-01-02 hasta 2021-01-04 cada día 100% carga de trabajo. En 2021-01-05 que es el último día de ese pedido, la máquina funciona 15 horas, por lo que en porcentaje de carga de trabajo resulta en 15/24 = 62,5%.

Lo más importante es que la máquina ejecute pedidos uno tras otro, pero nunca al mismo tiempo, lo que en realidad devuelve datos claros.

Espero que haya una manera de calcularlo de esa manera y también para las otras órdenes. Por supuesto, un pedido también puede comenzar y terminar el mismo día.

Saludos.

Syndicate_Admin
Administrator
Administrator

Hay @Applicable88 ,

De acuerdo con su descripción, pruebe la siguiente fórmula MEASURE:

work = 
IF (
    DAY ( MAX ( 'Order'[FinishTime] ) ) = DAY ( MAX ( 'Order'[StartTime] ) ),
    ( HOUR ( MAX ( 'Order'[FinishTime] ) ) - HOUR ( MAX ( 'Order'[StartTime] ) ) ) / 24,
    ( 24 - HOUR ( MAX ( 'Order'[StartTime] ) ) ) / 24
)

vhenrykmstf_0-1633500336295.png

Si la comprensión está desactivada, describa más a fondo sus requisitos y proporcione capturas de pantalla de los resultados deseados. Responderé a sus preguntas lo antes posible.

Esperamos su respuesta.


Saludos
Henrio


Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

@Greg_Deckler gracias por los dos enlaces. Busqué más en el tema de "evento en progreso". Al principio pensé que es un poco similar, pero no puedo entender cómo eso resolverá mi problema. Mis OrderID están por naturaleza siempre cerrados. Ya sucedió. Se trata solo de la asignación de segundos a las columnas de fecha correctas. Espero que alguien se haya encontrado con algún problema de smiliar. Espero que haya un resultado en esto, ya que como el ejemplo cuando una duración dura más de varios días, devolver toda la duración del tiempo únicamente en la fecha de inicio es totalmente incorrecto.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

November Carousel

Fabric Community Update - November 2024

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

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

Top Solution Authors
Top Kudoed Authors