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 clicekd en la barra, puede filtrar la visualización de la tabla que muestra qué estudiante aprueba la asignatura)

2) Cree una lista de tablas como se muestra a continuación

Tema 1Tema 2Tema 3
JamesPasarFallarPasar
ÉlFallarFallarFallar
MimiPasarPasarPasar
JovenPasarFallarPasar
RajFallarPasarFallar
ChenPasarFallarFallar
LinFallarFallarPasar
MayoPasarPasarFallar
  • 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.

3 Replies

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      @amitchandak ,

      Gracias por su respuesta, sin embargo, la barra en la que se hizo clic aún no puede filtrar la tabla a continuación (consulte la captura de pantalla).
      Lo que quiero es que si hago clic en la de la barra de asunto, se filtrará en el estado de aprobación de la columna de asunto correspondiente.

      NSBS_0-1649401457236.png

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

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