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

Múltiples KPI objetivo para el cálculo de reembolso de compra de proveedores

Hola a todos,

Estoy buscando en los últimos días una solución para un problema que tengo relacionado con algún panel de control para un departamento de compras.

El requisito es crear un íntior visual (KPI) para controlar el reembolso de diferentes proveedores o marcas.

Por ejemplo, a tener un proveedor A, se le concedió lo siguiente:

Compras

> 500 000,00 euros - reembolso 0,50 %

> 750 000,00 euros - reembolso 0,75 %

> 1 000 000,00 euros - reembolso 1,00 %

Necesito saber crear un indicador visual que cuando elijo el proveedor A muestra el paso achived, o no, la cantidad requerida para el siguiente paso y el reembolso amout calculado si se logra alguno de los pasos.

Espero haber dejado claro mi auto, pero no tengo ninguna idea de cómo implementar esto es PowerBI.

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

Hola, @SergioSilva

De acuerdo con su descripción, creo un modelo, a continuación, calcular tres medidas para calcular el resultado deseado.

Así:

Achieved = 
VAR a =
    SUMX (
        FILTER ( ALL ( Table1 ), [Country] = SELECTEDVALUE ( Table1[Country] ) ),
        [Amount]
    )
VAR b =
    CALCULATE (
        MAX ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] < a
        )
    )
RETURN
    IF (
        b = BLANK (),
        0,
        CALCULATE (
            MAX ( Table2[Rebate] ),
            FILTER (
                ALL ( Table2 ),
                [Country] = SELECTEDVALUE ( Table1[Country] )
                    && [Target] = b
            )
        )
    )
Atual rebate = 
VAR a =
    SUMX (
        FILTER ( ALL ( Table1 ), [Country] = SELECTEDVALUE ( Table1[Country] ) ),
        [Amount]
    )
VAR b =
    CALCULATE (
        MAX ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] < a
        )
    )
VAR c =
    IF (
        b = BLANK (),
        0,
        CALCULATE (
            MAX ( Table2[Rebate] ),
            FILTER (
                ALL ( Table2 ),
                [Country] = SELECTEDVALUE ( Table1[Country] )
                    && [Target] = b
            )
        )
    )
RETURN
    a * c
Missing for next level = 
VAR a =
    SUMX (
        FILTER ( ALL ( Table1 ), [Country] = SELECTEDVALUE ( Table1[Country] ) ),
        [Amount]
    )
VAR b =
    CALCULATE (
        MAX ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] < a
        )
    )
VAR c =
    CALCULATE (
        MIN ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] > a
        )
    )
RETURN
    IF ( c - a > 0, c - a, 0 )

1.png

Aquí está mi archivo .pbix de ejemplo. Espero que ayude.

Si no resuelve su problema, por favor no dude en preguntarme.

Saludos

Janey Guo

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

6 REPLIES 6
Anonymous
Not applicable

@v-janeyg-msft agradecen toda la ayuda, pero el conjunto de datos y las restricciones en los reembolsos son mucho más complicados. De cualquier manera, elijo su anwser como solución, porque resolvió el problema como expliqué inicialmente.

Anonymous
Not applicable

@v-janeyg-msft gracias por la solución.

Estoy teniendo problemas para implementarlo en el proyecto atual.

Primero la tabla con compras tienen cantidad para todos los años, pero esto sólo puede tener valores para 2020, traté de cambiar la consulta para lo siguiente pero con nuestro éxito:

VAR a =
    CALCULATE (SUMX (
        FILTER ( ALL ( Compras ), [NumContribuinte] = SELECTEDVALUE ( Compras[NumContribuinte] )&&SELECTEDVALUE(Compras[DataDoc],YEAR(TODAY()))),
        [Valor]
    ))

Además, cuando el destino es 0, que corresponde a ningún destino, no calcula correctamente.

Disculpen las molestias, pero ¿es posible gestionar esto?

Hola, @SergioSilva

Obviamente hay un problema con su fórmula, pero si no sé cómo es su estructura de tabla, qué campos y tipos de datos tiene, será difícil para mí ayudarle a corregirlo.

¿Podría compartir algunos datos de muestra con datos falsos? Así que podemos ayudarte pronto.

Saludos

Janey Guo

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

v-janeyg-msft
Community Support
Community Support

Hola, @SergioSilva

De acuerdo con su descripción, creo un modelo, a continuación, calcular tres medidas para calcular el resultado deseado.

Así:

Achieved = 
VAR a =
    SUMX (
        FILTER ( ALL ( Table1 ), [Country] = SELECTEDVALUE ( Table1[Country] ) ),
        [Amount]
    )
VAR b =
    CALCULATE (
        MAX ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] < a
        )
    )
RETURN
    IF (
        b = BLANK (),
        0,
        CALCULATE (
            MAX ( Table2[Rebate] ),
            FILTER (
                ALL ( Table2 ),
                [Country] = SELECTEDVALUE ( Table1[Country] )
                    && [Target] = b
            )
        )
    )
Atual rebate = 
VAR a =
    SUMX (
        FILTER ( ALL ( Table1 ), [Country] = SELECTEDVALUE ( Table1[Country] ) ),
        [Amount]
    )
VAR b =
    CALCULATE (
        MAX ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] < a
        )
    )
VAR c =
    IF (
        b = BLANK (),
        0,
        CALCULATE (
            MAX ( Table2[Rebate] ),
            FILTER (
                ALL ( Table2 ),
                [Country] = SELECTEDVALUE ( Table1[Country] )
                    && [Target] = b
            )
        )
    )
RETURN
    a * c
Missing for next level = 
VAR a =
    SUMX (
        FILTER ( ALL ( Table1 ), [Country] = SELECTEDVALUE ( Table1[Country] ) ),
        [Amount]
    )
VAR b =
    CALCULATE (
        MAX ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] < a
        )
    )
VAR c =
    CALCULATE (
        MIN ( Table2[Target] ),
        FILTER (
            ALL ( Table2 ),
            [Country] = SELECTEDVALUE ( Table1[Country] )
                && [Target] > a
        )
    )
RETURN
    IF ( c - a > 0, c - a, 0 )

1.png

Aquí está mi archivo .pbix de ejemplo. Espero que ayude.

Si no resuelve su problema, por favor no dude en preguntarme.

Saludos

Janey Guo

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

Anonymous
Not applicable

Hola @v-janeyg-msft,

Gracias por la respuesta y su ayuda.

Aquí está el archivo con datos de ejemplo sample_data.xlsx.

Esta tabla tiene las compras a lo largo del año para cada marca:

compras.jpg

Entonces tengo otra tabla con los acuerdos de devolución:

acordos_marcas.jpg

Al final, la idea es tener un control visual por marca del reembolso alcanzado y la cantidad necesaria para el siguiente objetivo si corresponde. Ejemplo.

visual_kpi.jpg

No tiene que ser exacly así, ya que estoy abierto a sugestions.

¡Gracias una vez más!

v-janeyg-msft
Community Support
Community Support

Hola, @SergioSilva

Es un placer responder por ti.

Según tu descripción, creo que entiendo lo que necesitas. ¿Le importaría proporcionar algunos datos de muestra y su imagen de resultado esperado con onedrive, por lo que podemos ayudarle pronto.

Saludos

Janey Guo

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

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.