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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Cálculo de porcentajes de subtotales

¡Hola!

Primero revelaré que soy un usuario ocasional de Power BI, por favor discúlpeme si faltan algunos detalles necesarios, con mucho gusto proporcionaré lo que falte.

Hoja1:

Probado porCuentaPosición de balanceValor
APagos anticipados realizadosPagos anticipados de inventarios150
BAsentamientoPagos anticipados de inventarios130
ADeudores nacionalesCuentas comerciales por cobrar400
ADeudores en el extranjeroCuentas comerciales por cobrar350
AValoración de la cuenta de correcciónCuentas comerciales por cobrar820
CReclasificación kred. ClientesCuentas comerciales por cobrar120
BReclasificación kred. ClientesCuentas comerciales por cobrar30
DReclamaciones a Deb. ProveedorOtros activos actuales70
DReclamaciones a Deb. ProveedorOtros activos actuales50

Hasta el punto:

Me gustaría crear un tablero que consta de los siguientes modelos: Una segmentación de datos que con la opción de elegir un probador (A/B/C/D) y un gráfico de barras, que representa cada elemento de balance en el eje X con puntos porcentuales en el eje Y (también puede ser una tabla).

Por ejemplo, si se eligiera el probador A, el gráfico (o tabla) debería mostrarse:

-Pagos anticipados en inventarios: 53%

-Cuentas por cobrar: 91%

-Otros activos corrientes: 0%

Esto debería traducirse en cuánto revisó cada subtotal de cada elemento de balance específico por el probador seleccionado.

He intentado crear una nueva columna usando el siguiente comando DAX "divide((Sheet1[Value],sum(Sheet1[Value])*100)" que no resultó en gran parte de uso, ya que utiliza el valor total total para calcular un porcentaje. También he intentado aplicar soluciones similares de publicaciones anteriores, aunque no con mucho éxito.

Cualquier entrada será muy apreciada 🙂

1 ACCEPTED SOLUTION
v-stephen-msft
Community Support
Community Support

Hola @BIstories ,

Puede probar estas medidas.

Advance payments on inventories = 
VAR TT =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALL ( 'Table' ),
            [Balance sheet item] = "Advance payments on inventories"
        )
    )
RETURN
    SWITCH (
        SELECTEDVALUE ( 'Table'[Tested by] ),
        "A",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "A"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            ),
        "B",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "B"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            ),
        "C",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "C"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            ),
        "D",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "D"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            )
    )
Other current assets = 
VAR TT =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALL ( 'Table' ),
            [Balance sheet item] = "Other current assets"
        )
    )
RETURN
    SWITCH (
        SELECTEDVALUE ( 'Table'[Tested by] ),
        "A",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "A"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            ),
        "B",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "B"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            ),
        "C",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "C"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            ),
        "D",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "D"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            )
    )
Trade accounts receivable = 
VAR TT =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALL ( 'Table' ),
            [Balance sheet item] = "Trade accounts receivable"
        )
    )
RETURN
    SWITCH (
        SELECTEDVALUE ( 'Table'[Tested by] ),
        "A",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "A"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            ),
        "B",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "B"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            ),
        "C",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "C"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            ),
        "D",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "D"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            )
    )

Si se elige A, el gráfico es el siguiente.

1.png

Puede consultar más detalles desde aquí.

Saludos

Stephen Tao

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

View solution in original post

3 REPLIES 3
v-stephen-msft
Community Support
Community Support

Hola @BIstories ,

Puede probar estas medidas.

Advance payments on inventories = 
VAR TT =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALL ( 'Table' ),
            [Balance sheet item] = "Advance payments on inventories"
        )
    )
RETURN
    SWITCH (
        SELECTEDVALUE ( 'Table'[Tested by] ),
        "A",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "A"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            ),
        "B",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "B"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            ),
        "C",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "C"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            ),
        "D",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "D"
                            && [Balance sheet item] = "Advance payments on inventories"
                    )
                ),
                TT
            )
    )
Other current assets = 
VAR TT =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALL ( 'Table' ),
            [Balance sheet item] = "Other current assets"
        )
    )
RETURN
    SWITCH (
        SELECTEDVALUE ( 'Table'[Tested by] ),
        "A",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "A"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            ),
        "B",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "B"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            ),
        "C",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "C"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            ),
        "D",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "D"
                            && [Balance sheet item] = "Other current assets"
                    )
                ),
                TT
            )
    )
Trade accounts receivable = 
VAR TT =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALL ( 'Table' ),
            [Balance sheet item] = "Trade accounts receivable"
        )
    )
RETURN
    SWITCH (
        SELECTEDVALUE ( 'Table'[Tested by] ),
        "A",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "A"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            ),
        "B",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "B"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            ),
        "C",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "C"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            ),
        "D",
            DIVIDE (
                CALCULATE (
                    SUM ( 'Table'[Value] ),
                    FILTER (
                        'Table',
                        [Tested by] = "D"
                            && [Balance sheet item] = "Trade accounts receivable"
                    )
                ),
                TT
            )
    )

Si se elige A, el gráfico es el siguiente.

1.png

Puede consultar más detalles desde aquí.

Saludos

Stephen Tao

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

amitchandak
Super User
Super User

Anonymous
Not applicable

Hola @amitchandak gracias por la respuesta.

La base del porcentaje debe ser el valor total de cada posición del balance por sí misma.

Por ejemplo, son 280 en el caso de "Inventarios de pagos anticipados" y 1720 en "Cuentas comerciales recibos".

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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