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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Calcule el bono anual basado en el total de compras

Hola

Soy bastante nuevo en DAX y he estado luchando durante bastante tiempo con este desafío. Tengo un caso en el que necesitamos calcular nuestro bono anual de nuestros proveedores en función de nuestras compras totales de cada proveedor durante el año en curso. Este es el escenario:

Tengo tres tablas: DimVendor, SupplierAgreements y FactPurchases y se ven así.

DimVendor

D_VEN_IDVendorNameProveedorNoResponsableComprador
1EjemploProveedor112349887ALYO
2EjemploProveedor290817974EN
...

FactPurchase

D_VEN_IDDocumentoNoFecha de publicaciónImporte
1IF10329482023-04-2054612
1IF98712882023-05-30641
2IF19239872023-06-2015220
....

Acuerdos con proveedores

Nombre del proveedorBlancoTargetPeriodStartDateTargetPeriodEndDateSobresueldo
EjemploProveedor1200002023-01-012023-12-312%
EjemploProveedor1500002023-01-012023-12-315%
EjemploProveedor2200002023-01-012023-12-315%
EjemploProveedor2500002023-01-012023-12-3110%
...

AlexanderNN_0-1691564748451.png

Por supuesto, hay más de lo que se muestra aquí, pero tal vez esto ilustra el ejemplo. Quiero que la medida resultante calcule el Bono que debemos esperar de nuestro proveedor. Entonces, en este ejemplo, la medida debe comparar la SUMA de la cantidad en FactPurchase para 2023 con la columna Objetivo en SupplierAgreements. La suma aquí es 55 253, que es mayor que el objetivo 50000 y, por lo tanto, la bonificación resultante debería ser 55 253 * 5 % para ExampleSupplier1. Por ejemploSuppler2 no se alcanza el nivel objetivo más bajo y deberíamos esperar 0 en Bonus.

La pregunta de bonificación es obtener otra medida que calcule la cantidad necesaria para alcanzar el siguiente nivel de bonificación. Entonces, en este ejemplo, esa medida se evaluaría como "BLANK" para ExampleSupplier1 y 4780 para ExampleSupplier2.

Estoy muy agradecido por cualquier idea al respecto y espero haber explicado el problema con cierta claridad 🙂.

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@AlexanderNN ,

Le sugiero que inactive las relaciones entre DimDate y SupplierAgreements.

vrzhoumsft_0-1692004066739.png

Medir:

Measure = 
VAR _ADD =
    SUMMARIZE (
        FactPurchase,
        FactPurchase[D_VEN_ID],
        "Sum", SUM ( FactPurchase[Amount] ),
        "Bonus",
            VAR _TARGET =
                CALCULATE (
                    MAX ( SupplierAgreements[Target] ),
                    FILTER (
                        SupplierAgreements,
                        SupplierAgreements[Target] <= SUM ( FactPurchase[Amount] )
                    )
                )
            VAR _BONUS =
                CALCULATE (
                    SUM ( SupplierAgreements[Bonus] ),
                    FILTER ( SupplierAgreements, SupplierAgreements[Target] = _TARGET )
                )
            RETURN
                _BONUS
    )
RETURN
    SUMX ( _ADD, [Sum] * [Bonus] + 0 )

El resultado es el siguiente.

vrzhoumsft_1-1692004096023.png

Saludos
Rico Zhou

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

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.