Support Formation DAX

Bonnes pratiques de filtre avec CALCULATE

Au lieu de (ALLEXCEPT):

Ventes par pays =
CALCULATE(
  Sales[SalesAmount],
  ALLEXCEPT( Customer, Customer[Continent] )
)

Donne le bon résultat, mais suppose que le champ Continent soit présent dans la vignette.

ALLEXCEPT commence par supprimer TOUS les filtres sur Customer.

Préférer REMOVEFILTERS + ( VALUES ou SUMMARIZE )

Supprime tous les filtres de la table Customer puis applique un filtre :

Ventes par continent =
CALCULATE(
    Sales[SalesAmount],
    REMOVEFILTERS ( Customer ),
    VALUES ( Customer[Continent] )
)

SalesAmount sera toujours calculé par rapport à Continent, même si le champ est absent de la vignette.

Avec plusieurs colonnes :

Supprime tous les filtres de la table Customer puis applique un filtre de plusieurs colonnes :

Ventes par continent =
CALCULATE(
    Sales[SalesAmount],
    REMOVEFILTERS ( Customer ),
    SUMMARIZE ( Costumer, Costumer[Continent], Costumer[...] )
)

Ou CROSSJOIN (VALUES(), VALUES()) si colonnes de différentes tables.