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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Calcular las horas entre dos fechas y horas, excluyendo los fines de semana y las horas no laborables

Estimados expertos,

Quiero calcular horas entre 2 fechas, CreationDate y CompletionDate

  • Por favor, excluya sábados y domingos
  • Incluye solo de 9:00 a.m. a 6:00 p.m. horas

Será muy muy bueno si puedes hacerlo por mí, ya que no puedo hacer esto como no mucho experto y pensar en ese nivel.

Descargue los datos de prueba y PBIX para obtener el siguiente enlace.

https://www.transfernow.net/dl/20211204nDhVs72D

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@bhuprakash revisa este video que habla sobre una pregunta similar.

Síguenos en LinkedIn (en ingle

Más información sobre el formato condicional en Microsoft Reactor

Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

Sé que esto ya está resuelto, así que dejo esto aquí para el futuro con la esperanza de que pueda ayudar a alguien en el futuro. 🙂

https://www.villezekeviking.com/calculating-handling-time-during-office-hours/

Syndicate_Admin
Administrator
Administrator

Estimados @parry2k ,

He aplicado todos los pasos según las instrucciones dadas en su video, pero mis cálculos de horas parecen incorrectos. Por ejemplo:

bhuprakash_1-1638686297662.png

He creado 1 boleto el 29-Oct-2021 09:55:00 AM , y lo cerré el 03-Nov-2021 10:00:00 AM, entonces si considero mis horas de trabajo como se muestra a continuación -

Inicio - 08:00:00 AM

Fin - 05:00:00 PM

Excluir - Sáb y Dom

Entonces el total de horas debe ser -

29-Oct (Jue) - 7 Horas

30-Oct (Vie) - 9 Horas

31-Oct (Sáb) - 0 Horas

01-Nov (Dom) - 0 Horas

02-Nov (Lun) - 9 Horas

03-Nov (Mar) - 2 Horas, Entonces el total de horas debe ser de ~ 27 Horas. Pero según el cálculo, muestra 18.1 horas.

A continuación se muestra la Medida que he creado:

Horario de autobuses abiertos =
Var BusHoursStart = CALCULATE(SELECTEDVALUE('Business Hours'[Time]), 'Business Hours'[Business Hours] = "Start")
Var BusHoursEnd = CALCULATE(SELECTEDVALUE('Business Hours'[Time]), 'Business Hours'[Business Hours] = "End")
Var BusHoursPerDay = VALOR(BusHoursEnd - BusHoursStart)*24
Var ThisStartTime = 'Jira Raw data'[Tiempo creado]
Var ThisEndTime = 'Jira Raw data'[Tiempo de finalización]
Var StartDate = 'Jira Raw data'[Creado]
Var EndDate = 'Jira Raw data'[Campo personalizado (marca de tiempo de finalización)]
Var FirstDayElapsedTime = SWITCH(TRUE(),
RELACIONADO('Date Calender'[IsWorkingDay])=0,0,
ThisStartTime>=BusHoursEnd,0,
ThisStartTime<=BusHoursStart,BusHoursPerDay,
StartDate = EndDate && ThisEndTime < BusHoursEnd, ROUND((ThisEndTime-ThisStartTime)*24,3),
ROUND((BusHoursEnd-ThisStartTime)*24,3))
Var LastDayElapsedTime = SWITCH(TRUE(),
LOOKUPVALUE('Date Calender'[IsWorkingDay], 'Date Calender'[Date], EndDate)=0,0,
ThisEndTime<=BusHoursStart,0,
ThisEndTime>=BusHoursEnd,BusHoursPerDay,
StartDate = EndDate,0,
ROUND((ThisEndTime - BusHoursStart)*24,3))
Var FullWorkingDay = CALCULATE(sum('Date Calender'[IsWorkingDay]), DATESBETWEEN('Date Calender'[Date], StartDate+1, EndDate-1))
Var TotalHours = FirstDayElapsedTime + LastDayElapsedTime + FullWorkingDay*BusHoursPerDay
Devolver TotalHours




Si me puedes ayudar con corregir horarios, será genial. Me han enviado el archivo pbix.

@Anonymous ,

Pruebe este código

WorkHour =
VAR _allmin =
    GENERATESERIES(
        MAX( 'Test Data'[Creation Date] ),
        MAX( 'Test Data'[Completion Date] ),
        1 / 1440
    )
VAR _workmin =
    FILTER(
        ADDCOLUMNS(
            _allmin,
            "workday", WEEKDAY( [Value], 2 ),
            "worktime",
                IF( AND( HOUR( [Value] ) >= 9, HOUR( [Value] ) <= 17 ), 1, BLANK() )
        ),
        [workday] < 6
            && [worktime] = 1
    )
RETURN
    COUNTROWS( _workmin ) / 60

Resultado:

vchenwuzmsft_0-1638869421042.png

Necesita más atención:

Su hora creada es texto del archivo pbix proporcionado, debe cambiarlo al tipo de fecha / hora. Recomiendo usar el edito de power query para darle forma.

PBIX al final se puede referir.

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

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

@v-chenwuz-msft , estoy recibiendo un error por debajo mientras aplico su fórmula givebn.

bhuprakash_0-1639560261023.png

WorkHour = VAR _allmin = GENERATESERIES( MAX( 'Jira Raw data'[Created Date with time] ), MAX( 'Jira Raw data'[Custom field (Completion Timestamp)] ), 1 / 1440 ) VAR _workmin = FILTER( ADDCOLUMNS( _allmin, "workday", WEEKDAY( [Value], 2 ), "worktime", IF( AND( HOUR( [Value] ) >= 9, HOUR( [Value] ) <= 17 ), 1, BLANK() ) ), [workday] < 6 && [worktime] = 1 ) RETURN COUNTROWS( _workmin ) / 60
Por favor, ayuda.

@Anonymous ,

¿Funciona si se agregan las columnas [Fecha de creación con hora] y [Campo personalizado (marca de tiempo de finalización)] ? Tal vez no agregues relaciones entre la tabla 'Jira Raw data' y la tabla de donde proviene [Discripiton].

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

Anonymous
Not applicable

Dear @Syndicate_Admin , I am have tried it but not working. I am attaching my pbix file here. Kindly help me to get solution of it.  Thanks a lot

 

https://sendgb.com/VYCO7SxJhsa

 

Anonymous
Not applicable

Dear @Syndicate_Admin , thanks a lot for helping. This is perfectly working for me. 🙂

 

Syndicate_Admin
Administrator
Administrator

@bhuprakash revisa este video que habla sobre una pregunta similar.

Síguenos en LinkedIn (en ingle

Más información sobre el formato condicional en Microsoft Reactor

Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

Estimados @parry2k ,

Gracias por guiarme y ayudarme a resolver mi consulta. Lo hice paso a paso con ayuda de video y me funciona lo que quería. A continuación se muestra el cálculo de la medida que implementé-

Horario de autobuses abiertos =
Var BusHoursStart = CALCULATE(SELECTEDVALUE('Business Hours'[Time]),'Business Hours'[Business Hours]="Start")
Var BusHoursEnd = CALCULATE(SELECTEDVALUE('Business Hours'[Time]),'Business Hours'[Business Hours]="End")
Var BusHoursPerDay = VALOR(BusHoursEnd - BusHoursStart)*24
Var ThisStartTime = 'Jira Raw data'[Tiempo creado]
Var ThisEndTime = 'Jira Raw data'[Tiempo de finalización]
Var StartDate = 'Jira Raw data'[Creado]
Var EndDate = 'Jira Raw data'[Campo personalizado (marca de tiempo de finalización)]
Var FirstDayElapsedTime = SWITCH(TRUE(),
RELACIONADO(Cal[IsWorkingDay])=0,0,
ThisStartTime>=BusHoursEnd,0,
ThisStartTime<=BusHoursStart,BusHoursPerDay,
StartDate = EndDate && ThisEndTime < BusHoursEnd, ROUND((ThisEndTime-ThisStartTime)*24,3),
ROUND((BusHoursEnd-ThisStartTime)*24,3))
Var LastDayElepsedTime = SWITCH(TRUE(),
LOOKUPVALUE(cal[isWorkingDay],cal[date],endDate)=0,0,
ThisEndTime<=BusHoursStart,0,
ThisEndTime>=BusHoursEnd,BusHoursPerDay,
StartDate = EndDate,0,
ROUND((ThisEndTime-BusHoursStart)*24,3))
Var FullWorkDay = CALCULATE(sum(Cal[IsWorkingDay]),DATESBETWEEN(Cal[Date],StartDate+1,EndDate-1)) Var TotalHours = FirstDayElapsedTime + FullWorkDay*BusHoursPerDay + LastDayElepsedTime
Devolver TotalHours

@bhuprakash bien hecho, y gracias por compartir la solución con la comunidad para que otros puedan aprovecharla.

¡Buena suerte!

Síguenos en LinkedIn (en inglés)

Más información sobre el formato condicional en Microsoft Reactor

Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors