FILTER |
Filtre |
| DAX (Data Analysis Expressions) |
Syntaxe
Paramètres
| Nom |
Description |
| table |
Ce paramètre permet de spécifier la table ou l'expression de table sur laquelle le filtre sera appliqué. |
| filter |
Ce paramètre permet de définir la condition logique que chaque ligne de la table doit satisfaire pour être incluse dans le résultat. |
Description
Cette fonction permet de retourner une table représentant un sous-ensemble filtré d'une autre table ou expression.
Remarques
- Rôle central de FILTER dans le langage DAX : La fonction FILTER est l'une des fonctions les plus fondamentales et les plus utilisées en DAX. Elle permet de
créer une table virtuelle contenant uniquement les lignes qui respectent une condition logique donnée. Cette capacité est essentielle pour construire des mesures avancées,
car de nombreuses fonctions d'agrégation ou de calcul s'appuient sur des tables filtrées en entrée.
- Différence entre FILTER et les filtres implicites : Contrairement aux filtres implicites appliqués via le contexte de rapport (segments, axes, filtres
visuels), FILTER permet de définir un filtrage explicite au sein même d'une expression DAX. Cela donne un contrôle beaucoup plus précis sur les données utilisées dans le
calcul. Toutefois, cette précision implique une bonne compréhension du contexte de filtre et du contexte de ligne.
- Nature du paramètre table : Le paramètre table peut être une table physique du modèle ou une expression de table retournée par une autre fonction DAX. Cela
rend FILTER extrêmement flexible, car il peut être chaîné avec d'autres fonctions comme ALL, VALUES ou SUMMARIZE.
Cette souplesse permet de construire des tables virtuelles très adaptées à des besoins analytiques complexes.
- Fonctionnement du paramètre filter : Le paramètre filter correspond à une expression logique évaluée ligne par ligne sur la table fournie. Cette
expression doit retourner TRUE ou FALSE pour chaque ligne, ce qui détermine si la ligne est conservée ou non. Il est important
de noter que cette expression est évaluée dans un contexte de ligne, ce qui influence la manière dont les colonnes sont référencées.
- Interaction avec le contexte de ligne et le contexte de filtre : FILTER est souvent au cour des problématiques de compréhension du contexte en DAX. À
l'intérieur de FILTER, un contexte de ligne est créé, mais il n'est pas automatiquement transformé en contexte de filtre. Cela explique pourquoi FILTER est fréquemment
combinée avec CALCULATE ou des fonctions d'itération pour produire le résultat attendu.
- Impact sur les performances : Bien que FILTER soit très puissante, son utilisation peut avoir un impact significatif sur les performances si elle est mal
employée. Filtrer de grandes tables avec des conditions complexes peut entraîner des temps de calcul élevés. Il est donc recommandé de privilégier, lorsque c'est possible,
des filtres simples ou des alternatives comme les filtres directs dans CALCULATE.
- Utilisation dans les mesures et les expressions complexes : FILTER est principalement utilisée dans les mesures DAX, mais elle peut également apparaître dans
des colonnes calculées ou des expressions intermédiaires. Elle sert souvent à définir des ensembles personnalisés, par exemple pour calculer des ventes sur une période
spécifique ou pour exclure certaines catégories. Sa capacité à retourner une table la rend compatible avec de nombreuses autres fonctions DAX.
- Bonnes pratiques et lisibilité du code : Pour améliorer la lisibilité et la maintenance des formules, il est conseillé d'utiliser des variables (VAR) pour
entreposer les tables filtrées retournées par FILTER. Cela permet de clarifier la logique et d'éviter les répétitions inutiles. Documenter les conditions de filtrage et
limiter la complexité des expressions contribue également à un modèle DAX plus robuste et plus compréhensible.
Dernière mise à jour : Vendredi, le 30 Mai 2025