Leçon 4 / 10 — Chapitre 7: DAX : CALCULATE et le contexte de filtre
FILTER : une condition sur une table
FILTER( table, condition ) renvoie une table : les lignes de table pour lesquelles condition est vraie. Elle s'utilise dans CALCULATE, ou dans un itérateur.
Cas où FILTER est nécessaire :
- condition sur une mesure :
CALCULATE( COUNTROWS(Produits), FILTER( Produits, [CA Produit] > 1000 ) )— nombre de produits dont le CA dépasse 1 000. Un argument simple ne peut pas tester[CA Produit]. - comparaison entre deux colonnes :
FILTER( Ventes, Ventes[Montant] > Ventes[Objectif ligne] ). - condition complexe combinant plusieurs colonnes de façon non triviale.
Coût et bonne pratique : FILTER parcourt la table entière. On lui passe la plus petite table possible : FILTER( Produits, ... ) plutôt que FILTER( Ventes, ... ) si la condition porte sur des attributs de produit. Et on évite FILTER quand un argument simple suffit — CALCULATE( SUM(...), Produits[Catégorie]="Boissons" ) est préférable à CALCULATE( SUM(...), FILTER( Produits, Produits[Catégorie]="Boissons" ) ).
À retenir
FILTER(table, condition)renvoie les lignes vraies ; s'utilise dansCALCULATEou un itérateur.- Nécessaire pour tester une mesure, comparer deux colonnes, ou une condition complexe.
- Lui passer la plus petite table possible ; préférer un argument simple quand il suffit.
À vous de jouer : pour compter les produits dont la mesure [CA Produit] dépasse 1 000, peut-on utiliser un argument de filtre simple dans CALCULATE, ou faut-il FILTER ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 90 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès