Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Tengo una tabla con ID de usuario y la fecha en que visitó algún lugar.
UserGUID | Fecha de visita |
usuario1 | 20/02/2020 |
usuario1 | 20/05/2020 |
usuario1 | 20/06/2020 |
usuario1 | 22/06/2020 |
usuario2 | 19/02/2020 |
usuario2 | 19/05/2020 |
usuario2 | 19/06/2020 |
usuario3 | 18/02/2020 |
Estoy tratando de crear un gráfico de columnas que muestre el recuento de usuarios visitados por última vez fecha por mes. El gráfico deseado es este para los datos de la tabla anterior:
La última visita del usuario 1 fue el 22/06/2020 y la última visita del usuario2 fue el 19/06/2020, por lo que hasta junio tenemos 2 usuarios.
La última visita del usuario3 fue el 18/02/2020, por lo que hasta febrero tenemos 1 usuario.
En Power BI, mi primer intento fue con esta medida:
qty =
COUNTROWS(
SUMMARIZE(
'Table',
[UserGUID],
"LastDate",
var _UserGUID = [UserGUID]
var _LastDate = MAXX(Filter(ALL('Table'), _UserGUID = 'Table'[UserGUID]), 'Table'[Visited date])
RETURN
MAXX(FILTER('Table', _LastDate = 'Table'[Visited date] && _UserGUID = 'Table'[UserGUID]), 'Table'[Visited date])
)
)
La función de resumen funciona correctamente sin ningún otro contexto de filtro:
Pero cuando uso tis measure (cantidad) en un gráfico de columnas con Mes en el eje x, esto no funciona correctamente:
Supongo que es algo con el contexto de filtro del eje x, desde mi punto de vista, esta línea resolvería este problema. Pero no es el caso.
var _LastDate = MAXX(Filter(ALL('Table'), _UserGUID = 'Table'[UserGUID]), 'Table'[Visited date])
¿Cómo configuro esta medida para obtener el resultado deseado?
Aquí está el código M para la tabla:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKi1OLTJU0lEyMtA3MNI3MjAyAHOMDAyMgAwDI12wUKwOqkpTFJWmIJWm2FWaoag0A6k0w6LSiBiVIBcZWhLjTphKwu6EqSRsuzFIpQVe22MB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [UserGUID = _t, #"Visited date" = _t, DateKey = _t, DateMonth = _t]),
#"Changed Type1" = Table.TransformColumnTypes(Source,{{"DateKey", Int64.Type}, {"Visited date", type date}}),
#"Changed Type" = Table.TransformColumnTypes(#"Changed Type1",{{"UserGUID", type text}, {"Visited date", type date}})
in
#"Changed Type"
En lugar de un enfoque de medición, ¿por qué no usar una columna calculada para lograr el resultado deseado? Esto hará que los cálculos sean más simples. Aquí hay una fórmula de muestra para obtener la última fecha visitada por el usuario.
Last Visited Date =
CALCULATE (
MAX ( 'Table'[Visited date] ),
ALLEXCEPT ( 'Table', 'Table'[UserGUID] )
)
A continuación, puede utilizar la columna en el objeto visual y, a continuación, para los valores, es el recuento distinto de identificadores de usuario.
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |