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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Anonymous
Not applicable

columna calculada con la función VALUES en otra tabla que está siendo filtrada por la segmentación de datos

Tengo 2 mesas. primero es "registered_users" que es todos mis usuarios registrados actualmente

Nombreuser_id
Alex1
Sarah2
Joe3
factura4

segundo es "1year_user_activity" que es toda la actividad de los usuarios (actualmente registrada o no)

user_idActividad
1Vender
3Comprar
1Comprar
2Navega
5Navega

Mi objetivo es tener un porcentaje de "usuario activo" que se puede segmentar por el tipo de actividad. Es decir, qué porcentaje de mis usuarios registrados actualmente aparecen en la tabla "actividad del usuario" y, a continuación, cambiar ese porcentaje en función de las actividades seleccionadas en la segmentación de datos.

Si selecciono navegar y comprar, entonces debería ver 50% porque actualmente 2/4 usuarios registrados han utilizado navegar o comprar.

La forma en que intenté hacer esto fue con una columna y una medida calculadas, tanto en la tabla "registered_users".

columna calculada "has_used_activity":

IF('registered_users'[user_id] en VALUES('1year_user_activity'[user_id]),1,0)
mesaure "activity_rate":
SUM('registered_users'[has_used_activity])/COUNT('registered_users'[user_id])
A continuación, pongo una segmentación de datos en la actividad, pero la segmentación de datos no afecta a la columna calculada.
Ahora he leído en otros lugares que este es el comportamiento esperado, pero me pregunto cómo conseguir el comportamiento "Yo" esperar.
1 ACCEPTED SOLUTION

hola @aclapacs

Sólo tiene que ajustar la fórmula de la siguiente manera:

registered_user_activity_rate = 
DIVIDE (
    CALCULATE(DISTINCTCOUNT ( '1year_user_activity'[user_id] ),FILTER('1year_user_activity','1year_user_activity'[user_id] in VALUES(registered_users[user_id]))),
    COUNT ( 'registered_users'[user_id] )
)

Resultado:

1.JPG

saludos

Lin

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

6 REPLIES 6
v-lili6-msft
Community Support
Community Support

hola @aclapacs

En primer lugar, usted debe saber que:

1. Columna de cálculo/ tabla no admite cambios dinámicos en función del filtro o la segmentación de datos.
2. La medida puede verse afectada por el filtro/slicer, por lo que puede usarlo para obtener el resultado de resumen dinámico en un objeto visual por su contexto de fila.

https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/

En segundo lugar, para su aceptación, podría utilizar esta fórmula para crear un meausre

Result =
DIVIDE (
    DISTINCTCOUNT ( '1year_user_activity'[user_id] ),
    COUNT ( 'registered_users'[user_id] )
)

iF todavía tiene problema, por favor comparta su archivo pbix de muestra y su salida esperada.

saludos

Lin

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

gracias @v-lili6-msft. El problema principal es que el numerador debe ser sólo los usuarios en el 1year_activity_table que también están en la tabla registered_users. He adjuntado la muestra pbix aquí, y se puede ver que, si seleccionamos comprar, el resultado de la medida es 33%, pero sólo debe ser 16,66% porque, en la tabla de 1year_activity filtrada, sólo hay 1 usuario que también está en la tabla de usuarios registrados (6 usuarios registrados), por lo tanto 1/6.

pbix_sample

hola @aclapacs

Sólo tiene que ajustar la fórmula de la siguiente manera:

registered_user_activity_rate = 
DIVIDE (
    CALCULATE(DISTINCTCOUNT ( '1year_user_activity'[user_id] ),FILTER('1year_user_activity','1year_user_activity'[user_id] in VALUES(registered_users[user_id]))),
    COUNT ( 'registered_users'[user_id] )
)

Resultado:

1.JPG

saludos

Lin

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Gracias @v-lili6-msft , esto resolvió el problema perfectamente. No entendí cómo usar la función CALCULATE correctamente

amitchandak
Super User
Super User

@aclapacs , en caso de que esté utilizando la segmentación de datos para filtrar los valores y ver % de eso

divide(count(Table[user]), calculate(count(Table[user]), all(Table)))

Anonymous
Not applicable

¿No creo que entiendo la sugerencia? Mi denomenator debe ser el recuento de todos los usuarios en el "ered_user de registro"en la tabla y mi numerador debe ser un recuento distinto de usuarios en la tabla "1year_user_activity" que también están en la tabla "registered_user". Este numerador debe cambiar en función de la segmentación de datos en el tipo de actividad.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

August Carousel

Fabric Community Update - August 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors