The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Tengo 2 mesas. primero es "registered_users" que es todos mis usuarios registrados actualmente
Nombre | user_id |
Alex | 1 |
Sarah | 2 |
Joe | 3 |
factura | 4 |
segundo es "1year_user_activity" que es toda la actividad de los usuarios (actualmente registrada o no)
user_id | Actividad |
1 | Vender |
3 | Comprar |
1 | Comprar |
2 | Navega |
5 | Navega |
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":
Solved! Go to 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:
saludos
Lin
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
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.
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:
saludos
Lin
Gracias @v-lili6-msft , esto resolvió el problema perfectamente. No entendí cómo usar la función CALCULATE correctamente
@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)))
¿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.
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.