Forum Discussion
Syndicate_Admin
Administrator
3 years agoRendimiento 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!
2 Replies
- Syndicate_Admin
Administrator
- Syndicate_Admin
Administrator
Hola Lucien, el archivo pbix anónimo está aquí