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])
)
)
v-shex-msft
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])
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
v-shex-msft
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.
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).
v-shex-msft
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])
v-shex-msft
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
DemoData (ZIP)
v-shex-msft
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])
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)))
)