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
Technowolf
Helper II
Helper II

TAT del horario comercial de trabajo y excluyendo el fin de semana

Hola

Estoy tratando de Calcuate TAT en horario comercial. He probado soluciones de pareja, pero nada me está dando el resultado esperado..

La fecha de inicio de mi negocio es 8:30 AM y la fecha de finalización del negocio es 18:00 PM

Mi TAT debe calcuar sólo horario sin horario comercial y excluyendo los fines de semana.

Esto es lo que he usado. https://community.powerbi.com/t5/Desktop/Calculating-TAT-of-working-hours/m-p/356345#M160546

Alerón

El resultado que estoy obteniendo está abajo.

Creado Business CET DateCreado Business CET WeekdayID de casoFirstTouched Business CET DateFirstTouched CET WeekDayNegocio TATNegocio esperado TAT
11/29/2019 8:305112/2/2019 12:301413.5
11/29/2019 11:375212/2/2019 15:181713.75
11/29/2019 12:455312/2/2019 16:201813.65
11/29/2019 13:095412/3/2019 13:0822918.97
11/29/2019 14:085512/2/2019 9:49115.27
12/6/2019 8:305612/6/2019 9:355-711.05
12/6/2019 8:305712/9/2019 8:49109.49
12/6/2019 8:305812/6/2019 8:405-720.20

No estoy seguro de por qué no funciona. Por favor, ayúdame a resolver esto. cualquier otra solución es bienvenida.

saludos

Charles Thangaraj

6 REPLIES 6
V-pazhen-msft
Community Support
Community Support

@Technowolf
No veo nada malo en su dax en comparación con la solución en el enlace.
Puede intentar:

TAT = 
var totaldiff = DATEDIFF([Created Business CET Date],[FirstTouched Business CET Date],HOUR)
var fridiff = DATEDIFF(TIMEVALUE([Created Business CET Date]),TIMEVALUE("18:00:00"),HOUR)
Return IF([FirstTouched CET WeekDay]<'ADX Cases'[Created Business CET WeekDay],totaldiff-14.5-48,totaldiff)

Equipo de Apoyo Comunitario Paul Zheng _
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Greg_Deckler
Super User
Super User

¿Has mirado: https://community.powerbi.com/t5/Quick-Measures-Gallery/Net-Work-Duration-Working-Hours/m-p/481543#M...

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Hola

Había intentado esto, pero estaba recibiendo un error. "La fecha de inicio en la función Calendario no puede ser posterior a la fecha de finalización."

ADX Error.pngError

No estoy seguro de por qué estoy recibiendo el error

mNetWorkDuration ?
Obtener las fechas de inicio y finalización
VAR __dateStart á 'ADX Cases'[Created Business CET Date]
VAR __dateEnd á 'ADX Cases'[FirstTouched Business CET Date]
Calcular los días laborables netos entre las fechas de inicio y finalización
VAR __NetWorkDays á COUNTX(FILTER(ADDCOLUMNS(CALENDAR(__dateStart,__dateEnd),"WeekDay",WEEKDAY([Date],2)),[WeekDay]<6),[Date])
Establezca esto al inicio de la jornada laboral (8:30 AM)
VAR __startTime - TIEMPO(8,30,0)
Establezca esta variable al final del día laborable (6:00 PM)
VAR __endTime - TIEMPO(18,0,0)
Calcular la duración de un día completo, en este caso en minutos
VAR __fullDayMinutes - DATEDIFF(__startTime,__endTime,MINUTE)
Calcular el número de días completos, esto explica la posibilidad de que los boletos comiencen y terminen el mismo día
VAR __fullDays - IF(__NetWorkDays < 2,0,__NetWorkDays-2)
Calcular la duración total de todos los días completos.
VAR __fullDaysDuration - __fullDays * __fullDayMinutes
Calcular la hora de inicio del registro actual
VAR __startDayTime - HORA(HORA(__dateStart),MINUTO(__dateStart),SEGUNDO(__dateStart))
VAR __startDayTime1 - SWITCH(
TRUE(),
__startDayTime>__endTime,__endTime,
__startDayTime <__startTime && __startDayTime>TIME(0,0,0),__startTime,
__startDayTime
)
Caclula la duración del primer día
VAR __startDayDuration - DATEDIFF(__startDayTime1,__endTime,MINUTE)
Calcular la hora de finalización del registro actual
VAR __endDayTime - HORA (HORA(__dateEnd), MINUTO (__dateEnd), SEGUNDO(__dateEnd))
VAR __endDayTime1 - SWITCH(
TRUE(),
__endDayTime>__endTime,__endTime,
__startDayTime <__startTime && __startDayTime>TIME(0,0,0),__startTime,
__endDayTime
)
Calcular la duración del tiempo para el último día
VAR __endDayDuration - DATEDIFF(__startTime,__endDayTime1,MINUTE)
La duración total es la duración de todos los días completos más las duraciones de tiempo del primer y último día
devolución
IF(__NetWorkDays-1,DATEDIFF(__dateStart,__dateEnd,MINUTE),__fullDaysDuration + __startDayDuration + __endDayDuration)

Por favor, compruebe dónde me estoy equivocando.

Gracias en avanzado.

saludos

Charles Thangaraj

Hola @Greg_Deckler

Su solución funciona, pero estoy teniendo un problema. Tengo dos columnas de fecha diferentes.

1. Crear fecha (es un dato predeterminado, tiene un icono de calendario antes de la columna.)

2. Cree la fecha CET de la empresa. (Esta es una columna calculada, tiene un icono de una columna)

Según usted, mida Si utilizo Crear fecha, su consulta funciona. pero si utilizo Create Business CET Date no funciona. Acabo de obtener 0 tiene resultado.

¿Hay alguna manera de formatear mi Columna calculada al formato de mi Columna Estándar.

Date Formating.pngMis tipos de columnaDate Formating 2.pngambas columnas tienen el mismo formato

Ambas columnas tienen el mismo formato .

Puedes guiarme qué hacer a continuación.

Mi informe es complicado.
Mi fecha de origen es UTC, convierta la fecha a CET en función del ahorro de luz diurna.

Tengo que llegar a citas

1. Fecha de creación (Fecha y hora en que se creó el caso)

2. Fecha de primera toque (fecha y hora en que se manejó el caso, es el primer tiempo de respuesta)

El horario de trabajo es de 8:30 a 18:00 y sólo los días de la semana

Tengo varios problemas. El cliente puede crear un caso en cualquier momento. Así que para calcular el TAT necesito que se calcule sólo durante las horas de trabajo y los días laborables.

Tengo una lógica para convertir todos los casos que llegaron en horario post-trabajo a horas de trabajo. así que tengo que usar estas columnas calculadas para calcular las horas y días de red.

Su consulta parece funcionar si utilizo las columnas Estándar. ¿me puede sor para arreglar esto.

Sé que esto es una medida. es posible convertir esto en columnas calculadas para que tenga datos en el nivel de fila y pueda construir más columnas basadas en esos datos.. Esto sería de gran ayuda

saludos

Charles Thangaraj

Anonymous
Not applicable

Hola

A partir de sus datos que publicó sus looks como sus fechas en el código son el camino equivocado

VAR __dateStart á 'ADX Cases'[Created Business CET Date]
VAR __dateEnd á 'ADX Cases'[FirstTouched Business CET Date]

En su lugar, quieres que sea

VAR __dateStart á ADX Cases'[FirstTouched Business CET Date]
VAR __dateEnd á 'ADX Cases'[Created Business CET Date]

porque primeroTounched Business es antes de la fecha de creación, que en este formato parece que se inicia porque la fecha es anterior a la fecha de creación

Hola

Lo intenté también, sigue siendo el mismo error.

Crear fecha es cuando se crea el caso y la primera fecha tocada es cuando se manejaron los casos..

No estoy seguro de por qué va mal.

saludos

Charles Thangaraj

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.