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

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.

Reply
Syndicate_Admin
Administrator
Administrator

Calcular la división de duraciones entre dos días

Hola

Buscando un poco de guía de mejores prácticas aquí.

Tengo una mesa para hojas de horas. Las hojas de horas pertenecen a los conductores de camiones y a menudo abarcan varios días. Con frecuencia dos días y a veces más de 2 días.

Realizo un cálculo de semana a fecha para que cada conductor rastree sus horas trabajadas en la semana actual a partir de las 00:00 de la mañana del lunes. Esto lo he sucedido, pero uno de los requisitos es que si el conductor cronometró el domingo y condujo durante la noche, la parte del turno después de la medianoche del domingo debe ser incluida en la caculación WTD.

Los datos se ven así. En este ejemplo, las hojas de horas en realidad no abarcan semanas. Todavía no tengo suficientes datos en la db para encontrar uno que lo haga, pero necesito trabajar sobre la base de que lo hará.

willpage_0-1614199094885.png

Por lo tanto, agregué una nueva columna booleana en Power Query llamada "Spans Weeks", que es simplemente si el día de inicio de la semana > Finalizar día de la semana (lunes siendo 0) entonces true.

Realmente no me importa si hago esto en PQ o DAX o sin embargo, estoy buscando lo que las mejores prácticas son realmente.

Necesito dividir una hoja de horas de este tipo donde Spans Weeks = cierto de tal forma que todo el tiempo que ocurre antes de la medianoche del domingo es ignorado por mi calc WTD y todo el tiempo después se incluye.

Mi cálculo wtd actualmente toma la hora de inicio, y si eso es dentro de la semana actual entonces está incluido, lo que deja la posibilidad de un conductor que comienza su turno el domingo por la noche y conduce a través de la noche, sin tener esa parte de su turno siendo incluido en la cifra WTD.

Mi primer pensamiento sería tomar esta fila y dividir en dos donde una fila tiene fecha / hora de inicio como la fecha / hora de inicio original y la fecha / hora de finalización es 23:59:59 domingo, y la segunda fila tiene la fecha / hora de finalización original y una fecha / hora de inicio de 00:00:00 lunes.

¿Ese sería el enfoque a adoptar, o hay una manera más limpia de hacerlo en DAX con una medida?

Mi calc DAX WDT se ve así:

Week to Date Minutes = 
var CurrentDate=LASTDATE('Date Table'[Date])
var DayNumberOfWeek=WEEKDAY(LASTDATE('Date Table'[Date]),3)
return
CALCULATE(
    SUM(Timesheets[totalOnDutyDriveRestDuration]),
DATESBETWEEN(
    'Date Table'[Date],
DATEADD(
    CurrentDate,
    -1*DayNumberOfWeek,
    DAY),
    CurrentDate))

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@willpage

El contenido es bastante largo, tal vez usted puede proporcionar un pbix de muestra que puedo entender mejor su modelo y mostrarme la columna de salida esperada.


Paul Zheng _ Equipo de Apoyo a la Comunidad
Si esta publicación ayuda, por favor acéptela como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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