The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now
Estoy trabajando con datos en una estructura a continuación, que representa a un usuario que está asignado a un programa.
Usuarios | Programa |
Usuario A | Programa A |
Usuario B | Programa B |
Usuario C | Programa A |
Existe una segunda tabla donde una lista de clases están asociadas a una lista de programas. Estas dos tablas tienen una relación establecida (el campo de programa).
Programa | Curso |
Programa A | Curso #1 |
Programa A | Curso #2 |
Programa A | Curso #3 |
Programa B | Curso #4 |
Programa B | Curso #5 |
Programa C | Curso #6 |
Programa C | Curso #8 |
Estoy tratando de encontrar una manera de contar el número de clases a las que se asigna un usuario (basado en su programa) y, a continuación, agregar las clases que cada usuario está tomando.
Como ejemplo de estas tablas de ejemplo, el usuario A se asigna a 3 cursos (del programa A), el usuario B se asigna a 2 cursos (#4 de curso y #5 de curso) y el usuario C también se asigna a 3 cursos. Mi objetivo es contar (3+2+3)-8 para una respuesta esperada de la medida.
¿Alguna idea de cómo lograr esto usando una medida dax? Gracias
Solved! Go to Solution.
Hola @sedric1 ,
esta medida hace lo que usted quiere, la tabla "usuario" programa" se llama Tabla, por lo que tienes que adaptar los nombres de tabla a tu modelo:
Measure =
SUMX(
ADDCOLUMNS(
SUMMARIZE(
'Table'
, 'Table'[Users]
, 'Table'[Program]
)
, "no of courses"
, var __course = [Program]
return
CALCULATE(
COUNT('Table (2)'[Course])
, 'Table (2)'[Program] = __course
)
)
, [no of courses]
)
Una pequeña captura de pantalla:
Como asumo que un usuario puede estar asociado con más de 1 programa, no establecí una relación entre ambas tablas, porque la función "RELATEDTABLE" no se pudo utilizar en ese caso.
Con suerte, esto proporciona lo que está buscando.
saludos
Tom
Hola @sedric1 ,
esta medida hace lo que usted quiere, la tabla "usuario" programa" se llama Tabla, por lo que tienes que adaptar los nombres de tabla a tu modelo:
Measure =
SUMX(
ADDCOLUMNS(
SUMMARIZE(
'Table'
, 'Table'[Users]
, 'Table'[Program]
)
, "no of courses"
, var __course = [Program]
return
CALCULATE(
COUNT('Table (2)'[Course])
, 'Table (2)'[Program] = __course
)
)
, [no of courses]
)
Una pequeña captura de pantalla:
Como asumo que un usuario puede estar asociado con más de 1 programa, no establecí una relación entre ambas tablas, porque la función "RELATEDTABLE" no se pudo utilizar en ese caso.
Con suerte, esto proporciona lo que está buscando.
saludos
Tom
@VijayP Lo sentimos por no aclarar, pero cualquier usuario que se asigna a un programa también está asociado a los cursos en los que se asigna el programa (como un programa, está destinado a ser como su especialidad en la escuela, y luego las clases se requieren a esa especialidad, por ejemplo).
@TomMartens Esta solución funcionó perfectamente. ¡Muchas gracias!
Aquí una cuestión es , no hay ninguna definición en la Tabla de Hechos, es decir, en la segunda tabla qué programa es trabajado por quién.
dado que el programa A assing ambos De a C en la Primera Tabla, no podemos decir quién estaba trabajando en qué curso.
Por lo tanto, no se establece la relación principal y la clave extranjera.
Debe tener otra columna en la segunda tabla que sea el usuario.
Hazme saber tus puntos de vista
puedes ver mis videos de youtube en www.youtube.com/perepavijay
Vijay Perepa
Proud to be a Super User!