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 l'attestation finale.
8 000 XOF / 12,20 € / 13,29 $
Débloquez les 97 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.