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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
DeepDive
Helper IV
Helper IV

Total a nivel de padre y porcentaje del total de padres.

Hola a todos

Enlace de publicación anterior

https://community.powerbi.com/t5/Desktop/Dynamic-Top-N-Categories-and-Top-N-Sub-Categories-and-Top-N...

En referencia a mi pregunta anterior, tengo más consultas relacionadas con la misma (datos de muestra y solución PBI está allí).

Mi problema aquí es, ahora necesito dos nuevas columnas en una necesito un total de todo cat/sub/brand a nivel de padre independientemente de la suma de la primera, y en la segunda columna necesito % de cuota de gato/sub/marca superior comparándolo con el total de su padre.

1 ACCEPTED SOLUTION
v-yingjl
Community Support
Community Support

Hola @DeepDive ,

Si lo tengo correctamente, puedes probar estos pasos:

1. Cree una tabla de niveles manualmente como esta, úselo como segmentación:

level tab.png

2. Cree una primera medida denominada [Total] para cada nivel seleccionado por la segmentación de datos:

Total =
IF (
    NOT ( ISFILTERED ( 'Level'[level] ) ),
    "Please select one level",
    IF (
        HASONEFILTER ( 'Level'[level] ),
        SWITCH (
            SELECTEDVALUE ( 'Level'[level] ),
            "Category", CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Category] ) ),
            "Sub Category",
                CALCULATE (
                    SUM ( 'Table'[Sales] ),
                    ALLEXCEPT ( 'Table', 'Table'[Sub Category] )
                ),
            "Brand", CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Brand] ) ),
            SUM ( 'Table'[Sales] )
        ),
        "Please just select one level"
    )
)

3. Cree otra medida denominada [share %] para cada nivel seleccionado por la segmentación de datos:

% share =
IF (
    NOT ( ISFILTERED ( 'Level'[level] ) ),
    "Please select one level",
    IF (
        HASONEFILTER ( 'Level'[level] ),
        VAR _Cat =
            CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Category] ) )
        VAR _Sub =
            CALCULATE (
                SUM ( 'Table'[Sales] ),
                ALLEXCEPT ( 'Table', 'Table'[Sub Category] )
            )
        VAR _Brand =
            CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Brand] ) )
        RETURN
            SWITCH (
                SELECTEDVALUE ( 'Level'[level] ),
                "Category", _Cat / _Cat,
                "Sub Category", _Sub / _Cat,
                "Brand", _Brand / _Cat
            ),
        "Please just select one level"
    )
)

4. Utilice un objeto visual de tabla para mostrar el resultado dinámicamente por la segmentación de nivel:

level re.png

Adjunto el archivo de muestra en el siguiente, espera ayudarle.

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

2 REPLIES 2
v-yingjl
Community Support
Community Support

Hola @DeepDive ,

Si lo tengo correctamente, puedes probar estos pasos:

1. Cree una tabla de niveles manualmente como esta, úselo como segmentación:

level tab.png

2. Cree una primera medida denominada [Total] para cada nivel seleccionado por la segmentación de datos:

Total =
IF (
    NOT ( ISFILTERED ( 'Level'[level] ) ),
    "Please select one level",
    IF (
        HASONEFILTER ( 'Level'[level] ),
        SWITCH (
            SELECTEDVALUE ( 'Level'[level] ),
            "Category", CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Category] ) ),
            "Sub Category",
                CALCULATE (
                    SUM ( 'Table'[Sales] ),
                    ALLEXCEPT ( 'Table', 'Table'[Sub Category] )
                ),
            "Brand", CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Brand] ) ),
            SUM ( 'Table'[Sales] )
        ),
        "Please just select one level"
    )
)

3. Cree otra medida denominada [share %] para cada nivel seleccionado por la segmentación de datos:

% share =
IF (
    NOT ( ISFILTERED ( 'Level'[level] ) ),
    "Please select one level",
    IF (
        HASONEFILTER ( 'Level'[level] ),
        VAR _Cat =
            CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Category] ) )
        VAR _Sub =
            CALCULATE (
                SUM ( 'Table'[Sales] ),
                ALLEXCEPT ( 'Table', 'Table'[Sub Category] )
            )
        VAR _Brand =
            CALCULATE ( SUM ( 'Table'[Sales] ), ALLEXCEPT ( 'Table', 'Table'[Brand] ) )
        RETURN
            SWITCH (
                SELECTEDVALUE ( 'Level'[level] ),
                "Category", _Cat / _Cat,
                "Sub Category", _Sub / _Cat,
                "Brand", _Brand / _Cat
            ),
        "Please just select one level"
    )
)

4. Utilice un objeto visual de tabla para mostrar el resultado dinámicamente por la segmentación de nivel:

level re.png

Adjunto el archivo de muestra en el siguiente, espera ayudarle.

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

July Newsletter

Fabric Community Update - July 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors