Conversión de horas no laborables a horas laborables.

Un usuario Pregunto ✅

Tecnolobo

Hola

Tengo casos creados por clientes fuera del horario comercial, cuando los agentes inician sesión durante el horario comercial y trabajan en el caso.

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

Inicio del horario comercial 08:30 AM
Fin del horario comercial 18:00

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 iniciaran sesión y tienen un TAT más alto.

Quiero convertir todos los casos Casos a los que llegaron durante el horario no comercial para que se conviertan al horario comercial.

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

He Venido Condiciones.abajo.

Si La Crea antes de las 8:30 AM del mismo Día. La fecha de modificación debe cambiarse a la misma fecha 8:30 a. m.
Si se crea después de las 6:00 p. m. La fecha de modificación debe cambiarse a la próxima fecha 8:30 a.m.
Si se crea un caso después de las 6:00 p. m. del viernes, la fecha de modificación debe cambiarse a lunes a las 8:30 a. m.
Si el caso se crea en un fin de semana (SÁBADO Y DOM), la fecha de modificación debe ser el lunes a las 8:30 a. m.

Mi tabla de muestra

No caso Creado en Día laborable Fecha de modificación Día laborable
1 01/01/2019 09:22:04 2 1/1/2019 9:22 2
2 01/01/2019 14:10:52 2 1/1/2019 14:10 2
3 01/01/2019 19:11:15 2 2/1/2019 8:00 3
4 01/01/2020 06:26:34 3 1/1/2020 8:00 3
5 02/11/2018 09:21:52 5 5/11/2018 8:30 1
6 26/10/2019 23:22:58 6 28/10/2019 8:30 1
7 27/10/2019 23:22:10 7 28/10/2019 8:20 1
8 28/10/2019 05:53:40 1 28/10/2019 5:53 1
9 28/10/2019 07:08:43 1 28/10/2019 8:00 1
10 28/10/2019 18:51:15 1 29/10/2019 8:00 2
11 28/10/2019 22:34:08 1 29/10/2019 8:00 2

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

Fecha de creación CET =
VAR añoLíneaActual =
AÑO ( [Case Created Date] )
VAR ultimodomoct =
MÁXIMO (
FILTRO (
CALENDARIO AUTOMÁTICO (),
AÑO ( [Date] ) = añoLíneaActual
&& MES ( [Date] ) = 10
&& DÍA LABORABLE ( [Date], 2 ) = 7
&& HORA([Date] <=2 )
),
[Date]
)
VAR ÚltimoDomMar =
MÁXIMO (
FILTRO (
CALENDARIO AUTOMÁTICO (),
AÑO ( [date] ) = añoLíneaActual
&& MES ( [Date] ) = 3
&& DÍA LABORABLE ( [Date], 2 ) = 7
&& HORA ([Date] >=3 )
),
[Date]
)
REGRESO
SI (
[Case Created Date] >= ultimodomoct
|| [Case Created Date] <= ultimodommar,
[Case Created Date] + TIEMPO ( 1, 0, 0 ),
[Case Created Date] + TIEMPO ( 2, 0, 0 )
)

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

Saludos,

Carlos Thangaraj

Hola @Tecnowolf,

Intenta crear una columna calculada 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

Luego, cambie el tipo de datos.

tipofecha.gif

Atentamente,

Helado

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @Tecnowolf,

Intenta crear una columna calculada 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

Luego, cambie el tipo de datos.

tipofecha.gif

Atentamente,

Helado

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Tecnolobo

En respuesta a Helado

Hola @Icey

Su solución DAX funciona como un encanto, estaba tratando de calcular TAT en días y horas de red. Obtuve una solución en DAX pero no funciona con la columna Calculada. Así que intento mover todo mi poder de cálculo. (https://community.powerbi.com/t5/Desktop/TAT-of-Working-Business-Hours-and-Exclusive-Weekend/mp/104…),

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

Saludos,

charles thagaraj

Tecnolobo

En respuesta a Helado

Hola

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

Recibo un error en mi salida.Casos ADX'[Created Date CET].[Date]

.La fecha es donde recibo el error.
Acabo de restaurar estas columnas según mi conjunto de datos.
‘Tabla'[Created On] a ‘Casos ADX'[Created Date CET]
‘Tabla'[WeeK Day] a ‘Casos ADX'[Created CET WeekDay]
‘Tabla'[Created On].[Date] a los casos ADX'[Created Date CET].[Date]


Fecha de modificación 2.png


Fecha de modificación =
VAR CreadoTiempo =
TIEMPO ( HORA ( ‘Casos ADX'[Created Date CET]), MINUTO ( ‘Casos ADX'[Created Date CET]), SEGUNDO ( ‘Casos ADX'[Created Date CET]) )
VAR Fecha de creación = «Casos ADX»[Created Date CET].[Date]
VAR Comienzo del negocio =
TIEMPO ( 8, 30, 0 )
VAR BusinessEnd =
TIEMPO ( 18, 0, 0 )
REGRESO
CAMBIAR (
CIERTO (),
‘Casos ADX'[Created CET WeekDay] EN { 1, 2, 3, 4 }, INTERRUPTOR (
CIERTO (),
Hora de creación >= BusinessStart
&& Hora de creación <= BusinessEnd, Fecha de creación & " " & Hora de creación,
HoraCreada < ComienzoNegocio, FechaCreado & " " & InicioNegocio,
Hora de creación > BusinessEnd, DATEADD (‘Casos ADX'[Created Date CET].[Date], 1, DÍA ) & » » & BusinessStart
),
‘Casos ADX'[Created CET WeekDay] = 5, INTERRUPTOR (
CIERTO (),
Hora de creación >= BusinessStart
&& Hora de creación <= BusinessEnd, Fecha de creación & " " & Hora de creación,
HoraCreada < ComienzoNegocio, FechaCreado & " " & InicioNegocio,
Hora de creación > BusinessEnd, DATEADD (‘Casos ADX'[Created Date CET].[Date], 3, DÍA ) & » » & BusinessStart
),
‘Casos ADX'[Created CET WeekDay] = 6, DATEADD (‘Casos ADX'[Created Date CET].[Date], 2, DÍA ) & » » & BusinessStart,
‘Casos ADX'[Created CET WeekDay] = 7, DATEADD (‘Casos ADX'[Created Date CET].[Date], 1, DÍA ) & » » & BusinessStart
)

No sé dónde me estoy equivocando. por favor, ayúdame

Saludos,
Carlos Thangaraj

En respuesta a Tecnolobo

Hola @Tecnowolf,

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

1. mAsegúrese de que el tipo de datos de ‘Casos ADX'[Created Date CET] es Fecha / Hora.

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

Atentamente,

Helado

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Tecnolobo

En respuesta a Helado

Hola

Pude resolver esto habilitando la inteligencia de tiempo en la configuración, que estaba deshabilitada, por eso no funcionaba. Su solución funcionó de maravilla, muchas gracias.

Saludos,

Carlos Thangaraj

camargos88



Hola @Tecnowolf,

Pruebe este código para una columna calculada:

Fecha modificado =
SI(TIEMPO(HORA(Tabela[Created On ]); MINUTO(Tabla[Created On ]); 00) < TIEMPO(8;30;0);
FORMATO(Tabla[Created On ]; «aaaa-mm-dd») & » » & HORA(8;30;0);
SI(TIEMPO(HORA(Tabela[Created On ]); MINUTO(Tabla[Created On ]); 00) > HORA(18;0;0) && DÍA DE LA SEMANA(Tabela[Created On ]; 1) EN {1;2;3;4;5};
FORMATO(FECHA(AÑO(Tabla[Created On ]); MES(Tabla[Created On ]); DIA(Tabla[Created On ]) + 1); «aaaa-mm-dd») & » » & HORA(8;30;0);
SI (TIEMPO(HORA(Tabela[Created On ]); MINUTO(Tabla[Created On ]); 00) > HORA(18;0;0) && DÍA DE LA SEMANA(Tabela[Created On ]; 1) = 6;
FORMATO(FECHA(AÑO(Tabla[Created On ]); MES(Tabla[Created On ]); DIA(Tabla[Created On ])) + 3; «aaaa-mm-dd») & » » & HORA(8;30;0);
SI (TIEMPO(HORA(Tabela[Created On ]); MINUTO(Tabla[Created On ]); 00) > HORA(18;0;0) && DÍA DE LA SEMANA(Tabela[Created On ]; 1) = 7;
FORMATO(FECHA(AÑO(Tabla[Created On ]); MES(Tabla[Created On ]); DIA(Tabla[Created On ])) + 2; «aaaa-mm-dd») & » » & HORA(8;30;0);
FORMATO(Tabla[Created On ]; «») ))))
ricardo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *