Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Mostrar el recuento de usuarios de la última fecha visitada

Hola

Tengo una tabla con ID de usuario y la fecha en que visitó algún lugar.

UserGUIDFecha de visita
usuario120/02/2020
usuario120/05/2020
usuario120/06/2020
usuario122/06/2020
usuario219/02/2020
usuario219/05/2020
usuario219/06/2020
usuario318/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:

luizzed_0-1654817517382.png

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:

luizzed_1-1654817816512.png

Pero cuando uso tis measure (cantidad) en un gráfico de columnas con Mes en el eje x, esto no funciona correctamente:

luizzed_2-1654817909970.png

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"

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@luizzed ,

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.

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.