Cómo excluir la marca de tiempo más antigua de CALCULATE (función MIN (…

Un usuario Pregunto ✅

Anónimo

Tengo una columna con marcas de tiempo modificadas. El objetivo es escribir la fecha de modificación más temprana para cada ID, PERO excluir la primera, que es la misma que la fecha de creación del ticket. Entonces necesito excluir la marca de tiempo donde la hora en MUOKATTU (* modificado *) es la misma que la columna LUOTU

He intentado usar IF, etc., pero el problema es que lo necesito ANTES para que funcione correctamente. Por favor aconséjame.

Reacción-Marca de tiempo =
CALCULAR(
MIN (
‘Entradas'[Modified]);
FILTRO (‘Entradas’; ‘Entradas'[ID] = ANTES (‘Entradas'[ID])
)
)

display4.PNG

En respuesta a Anónimo

Hola @Anónimo,

Mi fórmula es una medida, si la pones en una columna calculada, puede obtener un resultado incorrecto (la medida limitará el rango de cálculo a la fila, pero la columna de cálculo calculará la columna completa)

La medida:

Reaction-Timestamp(Measure) = MINX(FILTER(ALL(Tickets),Tickets[ID]=MAX(Tickets[ID])&&Tickets[Modified]<>Tickets[Created]),Tickets[Modified])

Capture.PNG

Por cierto, si desea usar la columna de cálculo, puede intentar usar la siguiente fórmula:

Reaction-Timestamp = 
MINX(FILTER(ALL(Tickets),Tickets[ID]=EARLIER(Tickets[ID])&&Tickets[Modified]<>Tickets[Created]),Tickets[Modified])

Saludos,

Xiaoxin Sheng

Hola @Anónimo,

Basado en su descripción, desea obtener la identificación actual, ¿verdad?

Si este es un caso, puede echar un vistazo a la siguiente fórmula:

MinTimeStamp=MINX(FILTER(ALL('Tickets');'Tickets'[ID]=MAX('Tickets'[ID]));'Tickets'[Modified])

Saludos,

Xiaoxin Sheng

Anónimo

En respuesta a v-shex-msft

Hola @ v-shex-msft,

Para abrir mi escenario:

– Tengo varias filas con la misma ID (una fila para cada modificación)

– He creado 2 columnas adicionales. Uno para la primera marca de tiempo y otro para las últimas.

– Quiero escribir el mismo sello para cada fila (más temprano para Reaction-timestamp y más reciente para Resolution-Tmes

La resolución (La más reciente) funciona como quiero, PERO tengo un problema con la primera (Reacción). La marca de tiempo más antigua es, de hecho, la misma que la marca de tiempo de la fecha de creación (Luotu). Quiero decir que la misma marca de tiempo también se registra en la columna Modificada (Muokattu). Entonces necesitaría la función para excluir la marca de tiempo más temprana y escribir la segunda marca de tiempo más antigua para cada fila en Reaction-Timestamp

Por supuesto, para cada identificación. Espero que esto aclare el caso. Gracias por tus aportes.

display4.PNG

Anónimo

En respuesta a Anónimo

Entonces, para mí, «tiempo de reacción» significa el tiempo que transcurre desde la creación del ticket hasta la primera modificación realizada en el ticket (primera entrada del agente de soporte).

En respuesta a Anónimo

Hola @Anónimo,

Disculpe el malentendido, modifiqué la fórmula para eliminar los registros que tienen la misma marca de tiempo.

MinTimeStamp=MINX(FILTER(ALL('Tickets');'Tickets'[ID]=MAX('Tickets'[ID])&&'Tickets'[Muokuttu]<>'Tickets'[Luotu]);'Tickets'[Muokuttu])

Saludos,

Xiaoxin Sheng

Anónimo

En respuesta a v-shex-msft

La función está funcionando pero solo da filas vacías. He tenido el mismo problema al intentar gestionar esto con ANTES. Lo que ha sucedido es que la modificación se compara con cada fecha de creación en la tabla y no solo dentro de la ID especificada. Por lo tanto, la función se compara con la última fecha de creación posible y el filtro falla cada vez -> No hay entradas en las filas.

No entiendo completamente cómo funciona su función, por lo que esto también podría ser otra cosa. ¿Algunas ideas?

Anónimo

En respuesta a Anónimo

Intenté agregar ID a la comparación y ahora da la última marca de tiempo posible. Solo para jugar y quizás dar algunas ideas.

MINX (FILTRO (TODOS (Tukipyynnot); Tukipyynnot[ID]= MAX (Tukipyynnot[ID]) && Tukipyynnot[Muokattu]<> (Tukipyynnot[ID]) &&Tukipyynnot[Luotu]); Tukipyynnot[Muokattu])

display5.PNG

En respuesta a Anónimo

Hola @Anónimo,

¿Puedes compartirnos algunos datos de muestra para probar?

Saludos,

Xiaoxin Sheng

Anónimo

En respuesta a v-shex-msft

Se adjunta el proyecto demodata. También descubrí cómo funciona la función mientras creaba la demostración. Parece elegir la segunda marca de tiempo más temprana del último ID que se encuentra en la tabla y no para cada ID como lo hace mi función RESOLUTION.

ID CREADO RESOLUCIÓN DE REACCIÓN MODIFICADA

display6.PNG

DemoData (ZIP)

En respuesta a Anónimo

Hola @Anónimo,

Mi fórmula es una medida, si la coloca en una columna calculada, puede obtener un resultado incorrecto (la medida limitará el rango de cálculo a la fila, pero la columna de cálculo calculará la columna completa)

La medida:

Reaction-Timestamp(Measure) = MINX(FILTER(ALL(Tickets),Tickets[ID]=MAX(Tickets[ID])&&Tickets[Modified]<>Tickets[Created]),Tickets[Modified])

Capture.PNG

Por cierto, si desea usar la columna de cálculo, puede intentar usar la siguiente fórmula:

Reaction-Timestamp = 
MINX(FILTER(ALL(Tickets),Tickets[ID]=EARLIER(Tickets[ID])&&Tickets[Modified]<>Tickets[Created]),Tickets[Modified])

Saludos,

Xiaoxin Sheng

Anónimo

En respuesta a v-shex-msft

¡Gracias @ v-shex-msft! Con tu ayuda lo hice funcionar.

Sin embargo, me encontré con un problema que es obvio cuando lo pienso ahora …

Abrí una discusión anterior sobre este proyecto aquí:

https: //community.powerbi.com/t5/Desktop/Reaction-Resolution-time-calculations-with-a-twist/mp/1126 …

El problema en PowerBI parece ser que no hay funciones de cálculo de tiempo lo suficientemente versátiles disponibles, así que utilicé la siguiente función para mostrar los tiempos de reacción / resolución como quería. Sin embargo, es, por supuesto, una columna de texto que no puedo usar en ningún gráfico / calcular promedios, etc.

Tengo que pensar en mi abrochamiento de nuevo para poder hacer preguntas exactas, pero en caso de que se enteren de mi problema, por supuesto, todas las sugerencias son más que bienvenidas. Pero esta pregunta / apertura fue respondida y marqué su publicación como solución. ¡Gracias de nuevo!

—-

Resolución-Display3 =

Duración VAR = [Resolutionmeasure-seconds] // 86400 segundos en un día
Días VAR =
INT (Duración / 86400) // 3600 segundos en una hora
Horas VAR =
INT (MOD (Duración – (días * 3600); 3600) / 60) // Hay 60 segundos en un minuto
VAR Minutos =
INT (MOD (Duración – (Horas * 3600); 3600) / 60) // Los segundos restantes son el resto de los segundos divididos por 60 después de restar las horas
Segundos VAR =
ROUNDUP (MOD (MOD (Duración – (Horas * 3600); 3600); 60); 0) // Redondeamos aquí para obtener un número entero
// Estas variables intermedias aseguran que tenemos ceros a la izquierda concatenados en un solo dígito
// Horas con ceros a la izquierda
VAR D =
IF (LEN (Días) = ​​1; CONCATENAR («0»; Días); CONCATENAR («»; Días))
VAR H =
IF (LEN (Horas) = ​​1; CONCATENAR («0»; Horas); CONCATENAR («»; Horas)) // Minutos con ceros iniciales
VAR M =
SI (
LEN (minutos) = 1;
CONCATENAR («0»; Minutos);
CONCATENAR («»; Minutos)
) // Segundos con ceros a la izquierda
VAR S =
SI (
LEN (segundos) = 1;
CONCATENAR («0»; Segundos);
CONCATENAR («»; Segundos)
) // Ahora devuelve las horas. minutos y segundos con ceros a la izquierda en el formato adecuado «hh: mm: ss»
REGRESO
CONCATENAR (
D;
CONCATENAR («:»; CONCATENAR (H; CONCATENAR («:»; M)))
)

Deja un comentario

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