Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
Hola a todos,
Tengo un problema con un datediff entre filas, basado en un índice y un filtro.
Quiero comprobar el tiempo entre 2 transacciones de estado.
Utilizo el siguiente DAX:
mi salida es la siguiente:
Ahora sólo quiero comprobar el DateDiff entre las filas donde el UserFieldName - Estado. Lo hice con el siguiente cambio en el DAX:
todavía no es la salida deseada porque mi fila final no contiene un valor (esto es lógico dado mi DAX).
¿Qué opciones tengo para validar el tiempo entre el índice 1 y el índice 4 (por lo que los elementos con UserFieldName ? Status).
gracias de antemano por su comentario!
Hola @joep78 ,
Intente simplemente utilizar una instrucción IF antes de que el cálculo vuelva a hacer la columna calculada para:
Dif between previous index _ =
VAR currentOrder = [OrderRef]
VAR currentIndex = [Index]
VAR PreviousDatetime =
CALCULATE (
MIN ( OrderHistory[ModificationDateTime] );
FILTER (
'OrderHistory';
'OrderHistory'[OrderRef] = currentOrder
&& 'OrderHistory'[Index] = currentIndex - 1
)
)
RETURN
IF (
OrderHistory[UserFieldName] = "Status";
DATEDIFF ( [ModificationDateTime]; PreviousDatetime; MINUTE ) * -1;
BLANK ()
)
En mi prueba devuelva el resultado correcto.
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHola Miguel,
Gracias por su respuesta. mi salida basada en su solución (pero otro ejemplo con más filas de adición) es el siguiente:
Por lo tanto, ahora solo las filas en las que UserFieldName - Status contiene un valor, pero el valor en él no se basa en la columna anterior donde UserFieldName - Status, sino en la fila anterior. En este caso, esta fila debe tener un valor de 1 (la fila anterior con UserFieldName - Status era 1 minuto antes). ¿Tiene sentido?
Hola @joep78 ,
Actualice la fórmula de la columna calculada relacionada como se muestra a continuación y compruebe si puede obtener el resultado deseado:
Dif between previous index =
VAR _premDate =
CALCULATE (
MAX ( 'OrderHistory'[ModificationDateTime] ),
FILTER (
'OrderHistory',
OrderHistory[OrderRef] = EARLIER ( 'OrderHistory'[OrderRef] )
&& 'OrderHistory'[UserFieldName] = "Status"
&& 'OrderHistory'[UserFieldName] = EARLIER ( 'OrderHistory'[UserFieldName] )
&& 'OrderHistory'[Index] < EARLIER ( 'OrderHistory'[Index] )
)
)
RETURN
DATEDIFF ( _premDate, 'OrderHistory'[ModificationDateTime], MINUTE )
Saludos
Rena
Hola Rena & Miguel,
Gracias por su apoyo, con el ajuste final de Rena mi solución da la salida correcta. ¡Felicidades por los dos!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the February 2025 Power BI update to learn about new features.