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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
Technowolf
Helper II
Helper II

Convertir horas no comerciales en horario comercial.

Hola

Tengo Casos Son Creados por Clientes que no son horarios comerciales, cuando los agentes inician sesión durante las horas hábiles que trabajan en el caso.

Necesito calcular el TAT. Desde la fecha de creación del caso - caso tocado por el agente.

Inicio del horario comercial8:30 AM
Fin del horario comercial6:00 PM

El problema es que los clientes pueden crear casos en cualquier momento. Por lo tanto, los casos se pueden crear antes o después del horario comercial. No podemos penalizar a los Agentes ya que los casos llegaron antes de que se registren y tengan un TAT más alto.

Quiero convertir todos los casos Casos a los que llegaron durante el horario no comercial para convertirse en horario comercial..

Fecha de creación hasta la fecha de modificación

Tengo condiciones de ven.abajo.

Si el creado antes de las 8:30 AM el mismo día . La fecha de modificación debe cambiara a la misma fecha 8:30 AM
Si el creado después de las 6:00 PM . La fecha de modificación debe cambiara a la fecha siguiente 8:30 AM
Si un caso se crea después de las 6 PM del viernes, la fecha de modificación debe cambiarse al lunes 8:30 a.m.
Si el caso se crea en un fin de semana (SAT & SUN), entonces la fecha de modificación debe ser el lunes 8:30AM

Mi tabla de muestras

Caso NoCreado enDía de WeeKFecha moddifiedDía de la semana
101/01/2019 09:22:0421/1/2019 9:222
201/01/2019 14:10:5221/1/2019 14:102
301/01/2019 19:11:1521/2/2019 8:003
401/01/2020 06:26:3431/1/2020 8:003
511/02/2018 09:21:52511/5/2018 8:301
610/26/2019 23:22:58610/28/2019 8:301
710/27/2019 23:22:10710/28/2019 8:201
810/28/2019 05:53:40110/28/2019 5:531
910/28/2019 07:08:43110/28/2019 8:001
1010/28/2019 18:51:15110/29/2019 8:002
1110/28/2019 22:34:08110/29/2019 8:002

Me gustaría tener una columna calculada DAX, es porque he creado una columna calculada en Dax convertir la hora UTC a hora CET. con los horarios de luz diurna CET

Fecha de creación CET ?
VAR currentLineYear ?
Año ( [Fecha de creación del caso] )
VAR LastSunOct ?
MAXX (
FILTRO (
CALENDARAUTO (),
Año ( [Fecha] ) - currentLineYear
&& MES ( [Fecha] ) 10
&& WEEKDAY ( [Fecha], 2 ) a 7
&& HORA([Fecha] <-2 )
),
[Fecha]
)
VAR LastSunMar ?
MAXX (
FILTRO (
CALENDARAUTO (),
Año ( [date] ) á currentLineYear
&& MES ( [Fecha] )
&& WEEKDAY ( [Fecha], 2 ) a 7
&& HORA ([Fecha] > 3 )
),
[Fecha]
)
devolución
SI (
[Fecha de creación del caso] >
|| [Fecha de creación del caso] <-LastSunMar,
[Fecha de creación del caso] + HORA ( 1, 0, 0 ),
[Fecha de creación del caso] + HORA ( 2, 0, 0 )
)

Si necesita más información por favor hágamelo saber

saludos

Charles Thangaraj

6 REPLIES 6
Icey
Community Support
Community Support

Hola @Technowolf ,

Intente crear una columna calculada como así:

Date Modified =
VAR CreatedTime =
    TIME ( HOUR ( 'Table'[Created On] ), MINUTE ( 'Table'[Created On] ), SECOND ( 'Table'[Created On] ) )
VAR CreatedDate = 'Table'[Created On].[Date]
VAR BusinessStart =
    TIME ( 8, 30, 0 )
VAR BusinessEnd =
    TIME ( 18, 0, 0 )
RETURN
    SWITCH (
        TRUE (),
        'Table'[WeeK Day] IN { 1, 2, 3, 4 }, SWITCH (
            TRUE (),
            CreatedTime >= BusinessStart
                && CreatedTime <= BusinessEnd, CreatedDate & " " & CreatedTime,
            CreatedTime < BusinessStart, CreatedDate & " " & BusinessStart,
            CreatedTime > BusinessEnd, DATEADD ( 'Table'[Created On].[Date], 1, DAY ) & " " & BusinessStart
        ),
        'Table'[WeeK Day] = 5, SWITCH (
            TRUE (),
            CreatedTime >= BusinessStart
                && CreatedTime <= BusinessEnd, CreatedDate & " " & CreatedTime,
            CreatedTime < BusinessStart, CreatedDate & " " & BusinessStart,
            CreatedTime > BusinessEnd, DATEADD ( 'Table'[Created On].[Date], 3, DAY ) & " " & BusinessStart
        ),
        'Table'[WeeK Day] = 6, DATEADD ( 'Table'[Created On].[Date], 2, DAY ) & " " & BusinessStart,
        'Table'[WeeK Day] = 7, DATEADD ( 'Table'[Created On].[Date], 1, DAY ) & " " & BusinessStart
    )

mo.PNG

A continuación, cambie el tipo de datos.

datetype.gif

Saludos

Icey

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @Icey

Su solución DAX funciona como un encanto, estaba tratando de calcular TAT en días y horas de red. Tengo una solución en DAX, pero no funciona con la columna Calculated. Así que estoy tratando de mover todo mi powerquery de cálculo. (https://community.powerbi.com/t5/Desktop/TAT-of-Working-Business-Hours-and-Excluding-Weekend/m-p/104...),

¿Puede ayudar a convertir la misma lógica en Power Query.

saludos

Charles Thagaraj

Hola

Gracias por tu ayuda. Esto es exactamente lo que estaba buscando.

Estoy recibiendo un error en mi salida. Casos ADX'[Fecha de creación CET].[ Fecha]

. La fecha es donde estoy recibiendo el error.
Acabo de remame estas columnas según mi conjunto de datos.
'Tabla'[Creado en] a 'Casos ADX'[Fecha de Creación CET]
'Table'[Día de WeeK] a 'Casos ADX'[Creado CET Day]
'Tabla'[Creado encendido]. [Fecha] a Casos ADX'[Fecha de Creación CET]. [Fecha]

Date Modified 2.png

Fecha de modificación ?
VAR CreatedTime ?
HORA ( 'Casos ADX'[Fecha de creación CET]), MINUTO ( 'Casos ADX'[Fecha de Creación CET]), SEGUNDO ( 'Casos ADX'[Fecha De Creación CET]) )
VAR CreatedDate á 'ADX Cases'[Created Date CET]. [Fecha]
VAR BusinessStart ?
TIEMPO ( 8, 30, 0 )
VAR BusinessEnd ?
TIEMPO ( 18, 0, 0 )
devolución
INTERRUPTOR (
VERDADERO (),
'ADX Cases'[Creado CET WeekDay] EN 1, 2, 3, 4o, SWITCH (
VERDADERO (),
CreatedTime >- BusinessStart
&& CreatedTime <-BusinessEnd, CreatedDate & " " & CreatedTime,
CreatedTime < BusinessStart, CreatedDate & " " & BusinessStart,
CreatedTime > BusinessEnd, DATEADD ( 'ADX Cases'[Created Date CET].[ Fecha], 1, DIA ) & " " & BusinessStart
),
'ADX Cases'[Creado CET WeekDay] 5, SWITCH (
VERDADERO (),
CreatedTime >- BusinessStart
&& CreatedTime <-BusinessEnd, CreatedDate & " " & CreatedTime,
CreatedTime < BusinessStart, CreatedDate & " " & BusinessStart,
CreatedTime > BusinessEnd, DATEADD ( 'ADX Cases'[Created Date CET].[ Fecha], 3, DIA ) & " " & BusinessStart
),
'ADX Cases'[Created CET WeekDay] á 6, DATEADD ( 'ADX Cases'[Created Date CET].[ Fecha], 2, DIA ) & " " & BusinessStart,
'ADX Cases'[Created CET WeekDay] - 7, DATEADD ( 'ADX Cases'[Created Date CET].[ Fecha], 1, DIA ) & " " & BusinessStart
)


No sé adónde me estoy equivocando. Por favor, ayúdame
saludos
Charles Thangaraj

Hola @Technowolf ,

Funciona bien de mi lado. Por favor, intente estas operaciones:

1. Make seguro que el tipo de datos de 'ADX Cases'[Created Date CET] es Date / Time.

2. Puede intentar eliminar esta parte y volver a entrar. A veces, esta operación funciona.

Saludos

Icey

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola

Pude resolver esto habilitando la inteligencia de tiempo en la configuración, que estaba deshabilitado por eso no estaba funcionando. Su solución funcionó como un encanto, Gracias una tonelada.

saludos

Charles Thangaraj

camargos88
Community Champion
Community Champion



Hola @Technowolf ,

Pruebe este código para una columna calcuted:

Fecha de modificación ?
IF(TIME(TABLE(Created On);; MINUTE (Tabla[Creada en ]); 00) < TIEMPO(8;30;0);
FORMAT (Tabela [Creado activado]; "AAAA-MM-DD") & "" & TIME (8; 30; 0);
IF(TIME(TABLE(Created On);; MINUTE (Tabla[Creada en ]); 00) > TIEMPO(18;0;0) && WEEKDAY(Tabla[Creada en ]; 1) IN 1;2;3;4;5;;
FORMAT (FECHA (año (Tabela [Creado en]); MES (Tabela [Creado activado]); DIA (Tabela [Creado en]) + 1); "AAAA-MM-DD") & "" & TIME (8; 30; 0);
IF (TIME(HOUR(Table[Created On]; MINUTE (Tabla[Creada en ]); 00) > TIEMPO(18;0;0) && WEEKDAY (Tabla [Creada en ]; 1) á 6;
FORMAT (FECHA (año (Tabela [Creado en]); MES (Tabela [Creado activado]); DIA (Tabela [Creado en])) + 3; "AAAA-MM-DD") & "" & TIME (8; 30; 0);
IF (TIME(HOUR(Table[Created On]; MINUTE (Tabla[Creada en ]); 00) > TIEMPO(18;0;0) && WEEKDAY (Tabla [Creada en ]; 1) a 7 ;
FORMAT (FECHA (año (Tabela [Creado en]); MES (Tabela [Creado activado]); DIA (Tabela [Creado en])) + 2; "AAAA-MM-DD") & "" & TIME (8; 30; 0);
FORMAT(Table[Created On ]; "") ))))
Ricardo


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!



Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors
Top Kudoed Authors