Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
4 years ago
Solved

Modelado de datos para booleanos

Hola Tengo una pequeña tabla (tipo booleano) como se muestra a continuación. Mi visualización esperada es: 1) Cree un gráfico de barras con solo el número de asignaturas de aprobación (una vez ...
  • Syndicate_Admin's avatar
    Syndicate_Admin
    4 years ago

    @NSBS ,

    Según su captura de pantalla, creo que debería haber dos tablas en su modelo de datos.

    Tabla DimSubject:

    RicoZhou_1-1649748545300.png

    Tabla de datos:

    RicoZhou_0-1649748538957.png

    Puede probar estos códigos para crear medidas.

    Count of Pass Subject = 
    SWITCH (
        MAX ( DimSubject[Subject] ),
        "Subject 1",
            CALCULATE (
                COUNT ( 'Table'[Subject 1] ),
                FILTER ( 'Table', 'Table'[Subject 1] = "Pass" )
            ),
        "Subject 2",
            CALCULATE (
                COUNT ( 'Table'[Subject 2] ),
                FILTER ( 'Table', 'Table'[Subject 2] = "Pass" )
            ),
        "Subject 3",
            CALCULATE (
                COUNT ( 'Table'[Subject 3] ),
                FILTER ( 'Table', 'Table'[Subject 1] = "Pass" )
            )
    )
    M_Subject 1 = 
    VAR _SELECTSubject =
        SELECTEDVALUE ( DimSubject[Subject] )
    RETURN
        IF (
            ISFILTERED ( DimSubject[Subject] ),
            IF (
                _SELECTSubject = "Subject 1",
                CALCULATE ( MAX ( 'Table'[Subject 1] ), 'Table'[Subject 1] = "Pass" ),
                BLANK ()
            ),
            MAX ( 'Table'[Subject 1] )
        )
    M_Subject 2 = 
    VAR _SELECTSubject =
        SELECTEDVALUE ( DimSubject[Subject] )
    RETURN
        IF (
            ISFILTERED ( DimSubject[Subject] ),
            IF (
                _SELECTSubject = "Subject 2",
                CALCULATE ( MAX ( 'Table'[Subject 2] ), 'Table'[Subject 2] = "Pass" ),
                BLANK ()
            ),
            MAX ( 'Table'[Subject 2] )
        )
    M_Subject 3 = 
    VAR _SELECTSubject =
        SELECTEDVALUE ( DimSubject[Subject] )
    RETURN
        IF (
            ISFILTERED ( DimSubject[Subject] ),
            IF (
                _SELECTSubject = "Subject 3",
                CALCULATE ( MAX ( 'Table'[Subject 3] ), 'Table'[Subject 3] = "Pass" ),
                BLANK ()
            ),
            MAX ( 'Table'[Subject 3] )
        )

    El resultado es el siguiente.

    Por defecto:

    RicoZhou_2-1649748637243.png

    Seleccione "Tema 1" en el gráfico de columnas.

    RicoZhou_3-1649748645083.png

    Saludos
    Rico Zhou

    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.