Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

Rendimiento muy lento de RANKX

Querida comunidad,

Quiero realizar un análisis de Pareto segmentando Proveedores en categorías "A", "B" y "C", basado en un ranking de Gasto (acumulativo) por proveedor:

A = proveedores más grandes, que representan el primer 80% del gasto

B = grupo medio de proveedores, que representan el siguiente 15% del gasto

C = proveedores más pequeños, que representan el 5% final del gasto

Con ese fin, he utilizado la siguiente fórmula para asignar la A, B o C a los proveedores, haciendo uso de RANKX:

ParetoAnalysisSegmentation =
DÓNDE Gasto total = CALCULAR( [D_Spend_MaxYear] , TODO( 'DIM_Suppliers'[Nombre del proveedor] ) )
DÓNDE Clasificación = RANKX(
TODO( «DIM_Suppliers»[Nombre del proveedor] ) ,
DIVIDIR( [D_Spend_MaxYear] , TotalSpend ) )
DÓNDE Segmentation = CALCULAR(
DIVIDIR( [D_Spend_MaxYear] , TotalSpend ) ,
FILTRO( TODO( «DIM_Suppliers»[Nombre del proveedor] ) ,
RANKX(
TODO( «DIM_Suppliers»[Nombre del proveedor] ) ,
DIVIDIR( [D_Spend_MaxYear] , Gasto total ) )
<=
Clasificación
)
)

DEVOLUCIÓN
SI( [D_Spend_MaxYear] = ESPACIO EN BLANCO() ,
ESPACIO EN BLANCO() ,
INTERRUPTOR( VERDADERO() ,
Segmentación <= 0.8 , "A" ,
Segmentación <= 0.95 , "B" ,
"C"
)
)
Por lo que la medida [D_Spend_MaxYear] calcula el gasto.
Esta fórmula funciona, sin embargo, es muy, muy lenta (210 segundos según Performance Analyzer). ¿Alguna orientación sobre cómo mejorar el rendimiento de esta fórmula? Creo que tiene algo que ver con RANKX, pero no sé cómo proceder.
¡Cualquier ayuda es apreciada!