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

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

Reply
sedric1
Helper III
Helper III

Ayuda de DAX - contar a través de una tabla relacionada

Estoy trabajando con datos en una estructura a continuación, que representa a un usuario que está asignado a un programa.

UsuariosPrograma
Usuario APrograma A
Usuario BPrograma B
Usuario CPrograma 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).

ProgramaCurso
Programa ACurso #1
Programa ACurso #2
Programa ACurso #3
Programa BCurso #4
Programa BCurso #5
Programa CCurso #6
Programa CCurso #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

1 ACCEPTED SOLUTION
TomMartens
Super User
Super User

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:
image.png
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



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

View solution in original post

3 REPLIES 3
TomMartens
Super User
Super User

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:
image.png
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



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

@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!

VijayP
Community Champion
Community Champion

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




Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
MY Blog || My YouTube Channel || Connect with me on Linkedin || My Latest Data Story - Ageing Analysis

Proud to be a Super User!


Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Top Solution Authors