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

Get Fabric certified for FREE! Don't miss your chance! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Calcular el bono en función del rango

Hola a todos,

Necesito crear una medida que devuelva un importe de pago. Tengo las siguientes 4 tablas, medida y matriz (obviamente una versión muy simplificada). Mi problema es crear una medida para distribuir el monto de pago de la Tabla 3 por la Tabla 2.Name y la Tabla 4.Nombre del incentivo. La nueva medida debe ser [Total Vendido]>=Tabla 3.Min && [Total Vendido]<=Tabla 3.Retorno máximo Pago, a menos que sea el último nivel, entonces Total Vendido * Pago.

Cualquier ayuda será muy apreciada.

Hay relaciones para:

Table1.Name->Table2.Name

Tabla1.Tipo->Tabla4.IncentiveName

Tabla3.Tipo->Tabla4.IncentiveName

noircrk_0-1727205022517.png noircrk_1-1727205054956.png

noircrk_5-1727205561064.png

noircrk_3-1727205081446.png

Medir
Total Vendido: Sum('Tabla1'[Vendido])

noircrk_4-1727205123842.png

Muchas gracias por su tiempo y consideración.

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Gracias por las respuestas de lbendlin y PhilipTreacy.

Hola @noircrk ,

¿Podría decirme si su problema ha sido resuelto? Si es así, ¿podría marcar las respuestas útiles, será útil para que otros miembros de la comunidad que tengan problemas similares al suyo lo resuelvan más rápido? ¡Muchas gracias por su amable cooperación!

Saludos
Zhu
Equipo de apoyo a la comunidad

Syndicate_Admin
Administrator
Administrator

Mi resultado esperado sería para la columna Pago:

Etiquetas de filaVendidoPago
Usuario 111550
Incentivo rojo5250
Incentivo amarillo6300
Usuario 29440
Incentivo rojo3200
Incentivo amarillo6240
Total general20990

Tabla de detalles

AssignmentNumber (Número de asignación)CsrNamePlan de IncentivosSold_Flg
0HDR76Usuario 1Incentivo amarillo1
0HYP39Usuario 2Incentivo rojo1
0IK024Usuario 2Incentivo rojo1
1YCMJ1Usuario 2Incentivo rojo1
32KDGWUsuario 1Incentivo amarillo1
4X80JWUsuario 1Incentivo amarillo1
534FG4Usuario 1Incentivo amarillo1
8J6LMNUsuario 2Incentivo amarillo1
8MHP48Usuario 1Incentivo rojo1
8SB5UGUsuario 1Incentivo amarillo1
9HG0HHUsuario 2Incentivo amarillo1
A559QHUsuario 2Incentivo amarillo1
CES0R8Usuario 2Incentivo amarillo1
CRKYBIUsuario 1Incentivo amarillo1
CW6LWFUsuario 2Incentivo amarillo1
D2ZAKWUsuario 2Incentivo amarillo1
IL0CYHUsuario 1Incentivo rojo1
N7IG2AUsuario 1Incentivo rojo1
O28G65Usuario 1Incentivo rojo1
O870PLUsuario 1Incentivo rojo1

Tabla de incentivos

IDENTIFICACIÓNIncentive_NameNivelMin_CreditMax_CreditPago
100Incentivo rojoAsientos020
101Incentivo rojoNivel 134200
102Incentivo rojoNivel 25 50
111Incentivo amarilloAsientos020
112Incentivo amarilloNivel 135100
113Incentivo amarilloNivel 26 40

¿Por qué YellowIncentive 6 paga 300? ¿Por qué no 240?

lbendlin_0-1727293924022.png

Disculpas, debería ser 240.

Ver adjunto

¡Gracias, @lbendlin ! Esto me ha acercado mucho.

Syndicate_Admin
Administrator
Administrator

Los datos de ejemplo no cubren los escenarios. Sírvanse proporcionar mejores datos de muestra.

Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).

No incluya información confidencial ni nada que no esté relacionado con el problema o la pregunta.

Si no está seguro de cómo cargar datos, consulte https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...

Muestre el resultado esperado en función de los datos de muestra que proporcionó.

¿Quieres respuestas más rápidas? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Syndicate_Admin
Administrator
Administrator

Hola @noircrk

Descargue mi archivo PBIX con los datos y el ejemplo a continuación

Los datos que proporcionó no cubren todos los escenarios necesarios para demostrar que la medida DAX funciona. Así que utilicé estos datos

matdata.png

Pruebe esto

Payout = 

VAR _incentive = SELECTEDVALUE(Table4[Incentive Name])

VAR _qty_sold = SELECTEDVALUE(Table1[Sold])

RETURN

SWITCH(

    TRUE(),

    _incentive = "Primary" && _qty_sold <= 5, 100,

    _incentive = "Primary" && _qty_sold >= 6 && _qty_sold <= 9 , 200,

    _incentive = "Primary" && _qty_sold >= 10, _qty_sold * 50,

    _incentive = "Secondary" && _qty_sold <= 3, 100,

    _incentive = "Secondary" && _qty_sold >= 4 && _qty_sold <= 6 , 200,

    _incentive = "Secondary" && _qty_sold >= 7, _qty_sold * 25,

     0
)

NOTA: Ajusté las bandas para el pago para que no se superpongan, es decir, no puede tener 10 como límite uppr para una banda y tener 10 como límite inferior para la siguiente banda.

Además, ¿realmente quieres recompensar a las personas con un pago si logran 0 ventas? Imagino que quieres cambiar ese 0 por un 1 en las bandas más bajas. Esto significará que también tendrá que ajustar las primeras pruebas a, p. ej.

_incentive = "Primary" && _qty_sold > 0 && _qty_sold <= 5, 100,

Entonces, terminas con una matriz como esta

mat1.png

Saludos

Phil

Helpful resources

Announcements
Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Kudoed Authors