Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Actualizado con archivo de ejemplo: archivo de muestra
¡Hola, espero que alguien pueda ayudar!
Tengo los datos a continuación y el uso de la medida a continuación para mostrarme el ID de la más reciente "Solicitud" si había una "Respuesta" por número de cuenta. Nota: podría haber varios IDs por 1 número de cuenta, solo depende de si hubo una respuesta o no.
MeasureTM CALCULATE(MAX('Activity'[ID]),Filter('Activity', 'Activity'[Activity] ?"Request" && CALCULATE(MAX('Activity'[ID])<CALCULATE(MAX('Activity'[ID]),'Activity'[Activity]-"Response",ALLEXCEPT('Activity',' Activity'[Account]))))
Cuenta | Actividad | Fecha de actividad | Usuario | Id |
1 | Petición | 01/01/2021 | Tom | 1 |
1 | Petición | 01/02/2021 | Jim | 2 |
1 | Petición | 01/03/2021 | John | 3 |
1 | Respuesta | 01/04/2021 | Stephanie | 4 |
2 | Petición | 01/05/2021 | será | 5 |
2 | Respuesta | 01/06/2021 | Joe | 6 |
3 | Petición | 01/07/2021 | Anna | 7 |
3 | Petición | 01/08/2021 | Ámbar | 8 |
3 | Respuesta | 01/09/2021 | Katie | 9 |
4 | Petición | 01/10/2021 | Jack | 10 |
4 | Respuesta | 01/11/2021 | Bob | 11 |
4 | Petición | 01/12/2021 | John | 11 |
4 | Respuesta | 01/13/2021 | Tom | 12 |
5 | Petición | 01/14/2021 | Liam | 13 |
Así que las líneas resaltadas en amarillo es lo que mi meausre me está consiguiendo. Sin embargo, quiero ir un paso más allá y contar esa medida. Así que en este caso, sería 4. ¿Algún consejo?
Gracias de antemano!
Solved! Go to Solution.
Hey @PowerBI123456 ,
aquí encontrará un nuevo enfoque :-), tenga en cuenta que este enfoque hace referencia a las columnas de las tablas de dimensiones. Para ello también es necesario cambiar los objetos visuales. Significado: utilice columnas de las tablas de dimensiones en su lugar.
Esta medida tampoco es tan genérica, ya que devuelve el requestID máximo, por lo que devolverá los resultados esperados cada vez que se utilice el colum acoount.
Si utiliza la medida en un objeto visual de tarjeta, volverá a ejecutar 12 en lugar de 4. Si necesita el 4 recomiendo usar un SUMX o COUNTX en combinación con VALUES('...'[account]
MaxReq Star =
var t =
ADDCOLUMNS(
VALUES( 'DIM: Accounts'[Account] )
, "maxrequestid"
, var MaxResponseID =
CALCULATE(
MAX( 'FACT: Activity'[ID] )
, ALL('DIM: Date' )
, ALL( 'DIM: Users' )
, ALL( 'FACT: Activity'[ID] )
, 'DIM: Activity'[Activity] = "Response"
)
var MaxRequestID =
CALCULATE(
MAX( 'FACT: Activity'[ID] )
, ALL( 'DIM: Date' )
, ALL( 'DIM: Users' )
, 'DIM: Activity'[Activity] = "Request"
--, 'FACT: Activity'[ID] = MaxResponseID - 1
, 'FACT: Activity'[ID] < MaxResponseID
)
return
MaxRequestID
)
return
CALCULATE(
MAX( 'FACT: Activity'[ID] )
, TREATAS( t , 'DIM: Accounts'[Account] , 'FACT: Activity'[ID] )
)
Aquí hay una captura de pantalla que muestra el uso de columna del visual del mapa de árbol:
Tenga en cuenta que el desafío general al que nos enfrentamos se basa en el hecho de que el almacén de datos (nuestro querido tabular SSAS dentro de Power BI) no conoce un tipo de datos de secuencia. A veces, aquí, esto hace las cosas difíciles, las otras veces es un plus.
Sin embargo, si esto no funciona, es posible que desee leer este artículo, aquí presento un enfoque diferente para abordar el desafío de valor anterior: El valor anterior - Mincing Data - Obtener información de datos (minceddata.info)
saludos
Tom
TomMartenss Hi, no siempre menos 1 ya que puede ocurrir otra actividad entre una solicitud y una respuesta. Pero la última solicitud antes de recibir una respuesta debe ser la solicitud coincidente. Así que puede parecerse a lo siguiente, sólo me importan las solicitudes y la respuesta, no la otra actividad. ¿Eso ayuda? He subido los datos para incluirlos si ayudan. Archivo de ejemplo
¡Gracias!
Hey @PowerBI123456 ,
aquí encontrará un nuevo enfoque :-), tenga en cuenta que este enfoque hace referencia a las columnas de las tablas de dimensiones. Para ello también es necesario cambiar los objetos visuales. Significado: utilice columnas de las tablas de dimensiones en su lugar.
Esta medida tampoco es tan genérica, ya que devuelve el requestID máximo, por lo que devolverá los resultados esperados cada vez que se utilice el colum acoount.
Si utiliza la medida en un objeto visual de tarjeta, volverá a ejecutar 12 en lugar de 4. Si necesita el 4 recomiendo usar un SUMX o COUNTX en combinación con VALUES('...'[account]
MaxReq Star =
var t =
ADDCOLUMNS(
VALUES( 'DIM: Accounts'[Account] )
, "maxrequestid"
, var MaxResponseID =
CALCULATE(
MAX( 'FACT: Activity'[ID] )
, ALL('DIM: Date' )
, ALL( 'DIM: Users' )
, ALL( 'FACT: Activity'[ID] )
, 'DIM: Activity'[Activity] = "Response"
)
var MaxRequestID =
CALCULATE(
MAX( 'FACT: Activity'[ID] )
, ALL( 'DIM: Date' )
, ALL( 'DIM: Users' )
, 'DIM: Activity'[Activity] = "Request"
--, 'FACT: Activity'[ID] = MaxResponseID - 1
, 'FACT: Activity'[ID] < MaxResponseID
)
return
MaxRequestID
)
return
CALCULATE(
MAX( 'FACT: Activity'[ID] )
, TREATAS( t , 'DIM: Accounts'[Account] , 'FACT: Activity'[ID] )
)
Aquí hay una captura de pantalla que muestra el uso de columna del visual del mapa de árbol:
Tenga en cuenta que el desafío general al que nos enfrentamos se basa en el hecho de que el almacén de datos (nuestro querido tabular SSAS dentro de Power BI) no conoce un tipo de datos de secuencia. A veces, aquí, esto hace las cosas difíciles, las otras veces es un plus.
Sin embargo, si esto no funciona, es posible que desee leer este artículo, aquí presento un enfoque diferente para abordar el desafío de valor anterior: El valor anterior - Mincing Data - Obtener información de datos (minceddata.info)
saludos
Tom
@TomMartens ¡¡¡Gracias!!! Creo que funcionará, pero sigue siendo calculador. Estoy lidiando con 20 millones de filas, así que es lento. La primera medida corrió rápido. ¿De todos modos para hacer esto más rápido?
Gracias por la aclaración, voy a ver en esto los próximos días.
No estoy seguro de si la definición actual del meaure "Max Request ID" no es 100% exacta al menos no a mi entender, ya que esta medida devuelve un valor para todas las cuentas si agrega el usuario de columna a la tabla superior derecha visule.
Desde mi entendimiento, esta medida debería devolver un valor en blanco para los Usuarios Jim y John for Account:1
saludos
Tom
@TomMartens ¡Gracias! Sí, debería estar en blanco. Es lo mejor que se me ocurrió.
@TomMartens ¡Muchas gracias! Así que me acabo de dar cuenta de que mi medida no es coger todas las solicitudes y sólo coger la máxima para cada cuenta. Así, por ejemplo, para la cuenta 4, hay 2 instancias donde hubo una solicitud antes de una respuesta, pero mi medida es sólo capturar la última. ¿Sabes cómo arreglar mi medida para que capture ambos y luego tu medida de suma captura eso por lo que su 5?
Hola @PowerBI123456 ,
la medida hace referencia a una columna [Action ...] que no está en la tabla que proporcionó.
Cree un archivo pbix que contenga datos de ejemplo, pero que refleje el modelo de datos. Cargue el archivo en onedrive o Dropbox y comparta el enlace. Si está utilizando Excel para crear los datos de ejemplo, comparta el xlsx también.
saludos
Tom
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |