Forum Discussion
Generar un endDateTime basado en createDateTime
Hola a todos
Tengo una relación que contiene estados de un proceso. Sólo se me da un createDateTime y necesito hacer alguna visualización que cuente los estados que terminaron hoy.
Mis datos se ven así:
La suposición es que, si la columna IsCurrentStatus no es igual a 0, createDateTime siguiente debe convertirse en endDateTime para esa fila. Y esto debe hacerse para cada ProcessId individualmente.
Nota: He mostrado el createDateTimes ordenado por processId en orden ascendente para demostrar fácilmente el problema, pero esto no es un hecho en mi conjunto de datos.
Ya es un gran agradecimiento de antemano para el héroe que puede resolver este 🙂
Lo mejor, Joep
No @JoepBI,
Según sus necesidades, hice la siguiente prueba, las medidas creadas se agrupan según Processid y satisfacen si la columna IsCurrentStatus NO es igual a 0, createDateTime siguiente debe convertirse en endDateTime para esa fila. Consulte la captura de pantalla a continuación:
endDateTime = VAR cur_index = MIN ( 'Table'[Index] ) + 1 VAR pre_index = CALCULATE ( MAX ( 'Table'[Index] ), FILTER ( ALL ( 'Table' ), 'Table'[processID] = MAX ( 'Table'[processID] ) && 'Table'[Index] <= cur_index ) ) RETURN IF ( MAX ( 'Table'[lsCurrentStatus] ) = 1, BLANK (), CALCULATE ( MIN ( 'Table'[createDateTime] ), FILTER ( ALL ( 'Table' ), MAX ( 'Table'[processID] ) = 'Table'[processID] && 'Table'[Index] = pre_index ) ) )Aquí está el archivo pbix de ejemplo.
Si el problema aún no se ha resuelto, proporcione información detallada del error y hágamelo saber inmediatamente. Esperamos su respuesta.
Saludos
Henry
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
5 Replies
- Syndicate_Admin
Administrator
@JoepBI , Crear una nueva columna para la hora de finalización
nueva columna =
var _1 = mix(filter(Table, [processId] = earlier([processId]) && [statusId]> earlier([statusId])),[statusId])
devolución
if([statusId]<> 0 , _1, blank())- Syndicate_Admin
Administrator
Gracias por su respuesta rápida y útil @amitchandak! ¿Qué hace la función de mezcla? Mi editor de consultas PowerBI devuelve "No se puede encontrar el nombre 'mix'. ' mix' no es una función.". Googling para la función de mezcla tampoco devolvió ningún resultado útil..
Mejor
Joep
- Syndicate_Admin
Administrator
@JoepBI , Lo siento, error tipográfico (MinX)
nueva columna =
var _1 = minx(filter(Table, [processId] = anterior([processId]) && [statusId]> anterior([statusId])),[statusId])
devolución
if([statusId]<> 0 , _1, blank())
- Syndicate_Admin
Administrator
No @JoepBI,
Según sus necesidades, hice la siguiente prueba, las medidas creadas se agrupan según Processid y satisfacen si la columna IsCurrentStatus NO es igual a 0, createDateTime siguiente debe convertirse en endDateTime para esa fila. Consulte la captura de pantalla a continuación:
endDateTime = VAR cur_index = MIN ( 'Table'[Index] ) + 1 VAR pre_index = CALCULATE ( MAX ( 'Table'[Index] ), FILTER ( ALL ( 'Table' ), 'Table'[processID] = MAX ( 'Table'[processID] ) && 'Table'[Index] <= cur_index ) ) RETURN IF ( MAX ( 'Table'[lsCurrentStatus] ) = 1, BLANK (), CALCULATE ( MIN ( 'Table'[createDateTime] ), FILTER ( ALL ( 'Table' ), MAX ( 'Table'[processID] ) = 'Table'[processID] && 'Table'[Index] = pre_index ) ) )Aquí está el archivo pbix de ejemplo.
Si el problema aún no se ha resuelto, proporcione información detallada del error y hágamelo saber inmediatamente. Esperamos su respuesta.
Saludos
Henry
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.