Privilégiez les filtres colonne = valeur dans CALCULATE plutôt que FILTER(table, condition) : le moteur peut “pousser” le filtre côté Storage Engine (SE) au lieu d’itérer côté Formula Engine (FE).
Sales Red 2024 :=
CALCULATE(
[Total Sales],
FILTER(ALL('Product'), 'Product'[Color] = "Red"),
FILTER(ALL('Date'), 'Date'[Year] = 2024)
)
Sales Red 2024 :=
CALCULATE(
[Total Sales],
KEEPFILTERS('Product'[Color] = "Red"),
KEEPFILTERS('Date'[Year] = 2024)
)
Réduisez la taille des tables virtuelles (préfiltrer tôt, projeter peu de colonnes).
Évitez les itérateurs inutiles (SUMX, AVERAGEX…) si un agrégat natif suffit (SUM, AVERAGE…).
Sales Qty>1 :=
SUMX(
FILTER(Sales, Sales[Quantity] > 1),
Sales[Amount]
)
Sales Qty>1 :=
CALCULATE(
SUM(Sales[Amount]),
Sales[Quantity] > 1
)
Utilisez VAR pour ne pas recalculer des expressions lourdes plusieurs fois.
Margin % :=
DIVIDE(
CALCULATE(SUM(Sales[Margin])),
CALCULATE(SUM(Sales[Amount]))
)
Margin % :=
VAR SalesAmt = CALCULATE(SUM(Sales[Amount]))
VAR SalesMrg = CALCULATE(SUM(Sales[Margin]))
RETURN DIVIDE(SalesMrg, SalesAmt)
Préférez KEEPFILTERS et IN aux FILTER génériques pour des inclusions simples.