Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.
Check it out now!Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
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
El resultado que estoy obteniendo está abajo.
Creado Business CET Date | Creado Business CET Weekday | ID de caso | FirstTouched Business CET Date | FirstTouched CET WeekDay | Negocio TAT | Negocio esperado TAT |
11/29/2019 8:30 | 5 | 1 | 12/2/2019 12:30 | 1 | 4 | 13.5 |
11/29/2019 11:37 | 5 | 2 | 12/2/2019 15:18 | 1 | 7 | 13.75 |
11/29/2019 12:45 | 5 | 3 | 12/2/2019 16:20 | 1 | 8 | 13.65 |
11/29/2019 13:09 | 5 | 4 | 12/3/2019 13:08 | 2 | 29 | 18.97 |
11/29/2019 14:08 | 5 | 5 | 12/2/2019 9:49 | 1 | 1 | 5.27 |
12/6/2019 8:30 | 5 | 6 | 12/6/2019 9:35 | 5 | -71 | 1.05 |
12/6/2019 8:30 | 5 | 7 | 12/9/2019 8:49 | 1 | 0 | 9.49 |
12/6/2019 8:30 | 5 | 8 | 12/6/2019 8:40 | 5 | -72 | 0.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
@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.
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."
Error
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.
Mis tipos de columna
ambas 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
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