Votre site référence pour maîtriser Power BI par Morpheus Formation,
Vous avez du mal à extraire des données précises dans Power BI ? La fonction FILTER() DAX, pourtant incontournable, paraît mystérieuse ?
Saviez-vous qu’elle permet de créer des sous-ensembles de données dynamiques pour des calculs ciblés, comme additionner les ventes d’un pays spécifique ou compter des transactions supérieures à un seuil ?
Découvrez sa syntaxe intuitive, des exemples concrets avec des mesures clés, et les astuces pour éviter les ralentissements. En explorant son association avec CALCULATE(), vous maîtriserez les bases du DAX pour des analyses percutantes, même en partant de zéro.
La fonction FILTER() en DAX : votre outil pour filtrer les données
À quoi sert la fonction FILTER() ?
La fonction FILTER() DAX est un outil essentiel pour les utilisateurs de Power BI souhaitant extraire un sous-ensemble de données à partir d’une table existante. Contrairement à d’autres fonctions qui retournent un seul chiffre ou texte, FILTER() renvoie une table virtuelle contenant uniquement les lignes qui respectent une condition spécifique.
Cette table temporaire peut ensuite servir d’argument pour d’autres fonctions DAX comme SUMX() ou COUNTROWS(). Par exemple, vous pourriez compter uniquement les ventes supérieures à 1000€ ou calculer la somme des commandes d’un client particulier.
Il faut comprendre que FILTER() parcourt chaque ligne de la table, un peu comme un assistant qui examine chaque fiche d’un registre papier pour ne garder que celles qui correspondent à un critère précis. C’est ce qu’on appelle une fonction d’itération : elle crée un contexte de ligne pour évaluer sa condition sur chaque enregistrement.
Cette fonction avancée est très utile. Si vous souhaitez en apprendre davantage sur ce type de fonction, vous pouvez passer une formation Power BI avancé à distance.
Comprendre la syntaxe de FILTER()
La formule de base est simple : FILTER(, ). Décomposons chaque élément :
- Premier paramètre
<table>: C’est la liste de données à explorer. Imaginez que c’est votre base client complète ou votre historique de ventes. - Second paramètre
<filter_expression>: C’est la condition précise qui déterminera quelles lignes garder. Cela ressemble à une case à cocher qui dit « Est-ce que [Chiffre d’affaires] > 10000 ? ».
Voici un exemple concret : FILTER(Clients, Clients[Ville] = "Paris") vous donnera une nouvelle liste contenant uniquement les clients parisiens. Cette nouvelle table virtuelle peut ensuite être utilisée pour calculer le nombre de clients franciliens avec COUNTROWS(FILTER(Clients, Clients[Ville] = "Paris")).
Une particularité importante : FILTER() ne modifie pas vos données mais crée temporairement une version filtrée. C’est comme faire une copie papier d’un registre en ne gardant que certaines pages, sans toucher à l’original.
Vous souhaitez découvrir le langage DAX et les différentes fonctions de Power BI ? Découvrez notre guide sur le langage DAX
Mettre en pratique la fonction FILTER() : exemples concrets
La fonction FILTER() en DAX permet de manipuler des données dans Power BI en créant des tables temporaires filtrées, sur lesquelles d’autres fonctions peuvent agir. Pour illustrer son utilisation, imaginons une table nommée « Ventes » avec les colonnes [Produit], [Pays], [Chiffre d_Affaires], et [Quantité]. Ces exemples concrets guideront les débutants dans des cas d’usage simples mais essentiels.
Exemple 1 : Créer une mesure pour les ventes en France
L’objectif est de calculer le chiffre d’affaires total uniquement pour les ventes en France. La formule DAX suivante est utilisée : Ventes France = SUMX(FILTER(‘Ventes’, ‘Ventes'[Pays] = « France »), ‘Ventes'[Chiffre d_Affaires]).
Décomposition :
- FILTER(‘Ventes’, ‘Ventes'[Pays] = « France ») : Cette partie génère une table temporaire ne contenant que les lignes où le pays est « France ».
- SUMX(…) : La fonction SUMX parcourt chaque ligne de cette table filtrée et additionne les valeurs de la colonne [Chiffre d_Affaires].
Pour l’implémenter dans Power BI, suivez ces étapes :
- Créez une nouvelle mesure via l’onglet « Accueil » ou le clic droit sur la table « Ventes ».
- Collez la formule DAX dans la barre de formule et validez.
- Glissez la mesure dans un visuel, comme une carte ou un graphique, pour afficher le résultat.
Exemple 2 : Compter le nombre de ventes à fort volume
Le défi ici est de compter les transactions où le chiffre d’affaires dépasse 1000 €. La formule DAX est : Nombre de Grosses Ventes = COUNTROWS(FILTER(‘Ventes’, ‘Ventes'[Chiffre d_Affaires] > 1000)).
Fonctionnement :
- FILTER(‘Ventes’, ‘Ventes'[Chiffre d_Affaires] > 1000) : Cette partie extrait une table temporaire avec uniquement les ventes supérieures à 1000 €.
- COUNTROWS(…) : La fonction COUNTROWS compte les lignes de cette table filtrée, donnant le nombre de « grosses ventes ».
Cet exemple souligne comment la FONCTION FILTER() DAX prépare les données pour une autre fonction. Ici, FILTER() agit comme un préalable à COUNTROWS, illustrant sa flexibilité pour des calculs variés.
Testez votre Niveau sur Power BI 🎓
Avant de se lancer, pourquoi ne pas tester votre niveau ? Avec notre test de 30 questions, vous évaluez rapidement vos compétences sur Power BI.
Aller plus loin : l’association puissante de FILTER() et CALCULATE()
Pourquoi utiliser FILTER() à l’intérieur de CALCULATE() ?
La fonction CALCULATE() modifie le contexte d’évaluation d’une expression en ajoutant ou remplaçant des filtres existants. Elle peut recevoir des filtres simples comme 'Table'[Colonne] = "Valeur".
Mais quand le filtre dépend de conditions complexes ou de calculs ligne par ligne, FILTER() devient indispensable. Par exemple, pour isoler des données avec des règles croisées (ex: « Catégorie = Électronique ET Coût > 100€ »), FILTER() génère une table filtrée que CALCULATE applique ensuite.
Cette combinaison permet de combiner flexibilité et puissance dans les calculs dynamiques, tout en gardant le contrôle sur les interactions entre tables.
Envie de développer plus de formules ? Découvrez notre page sur les fonctions DAX de Power BI !
La transition de contexte expliquée simplement
Lorsque vous travaillez dans un visuel Power BI, un contexte de filtre initial existe (ex: un filtre sur une année dans un tableau).
Une fonction comme SUMX() crée un contexte de ligne en parcourant chaque ligne d’une table. Sans CALCULATE, ces contextes restent isolés. CALCULATE transforme alors ce contexte de ligne en nouveau filtre applicable à l’ensemble du modèle.
Ce mécanisme, appelé transition de contexte, est crucial pour des calculs comme « Ventes du produit actuel dans un tableau croisé ». Toutefois, cette opération peut ralentir les performances sur de grandes tables.
Un exemple d’utilisation avec CALCULATE()
Imaginons une mesure pour calculer le chiffre d’affaires des produits Électronique :
CA Électronique = CALCULATE(SUM('Ventes'[Chiffre d_Affaires]), FILTER('Produits', 'Produits'[Catégorie] = "Électronique"))
Voici comment cela fonctionne :
- FILTER(‘Produits’, …) génère une table ne contenant que les produits de la catégorie « Électronique ».
- CALCULATE applique ce filtre à la somme des ventes, en respectant la relation entre les tables ‘Ventes’ et ‘Produits’.
Résultat : seul le chiffre d’affaires des produits électroniques est agrégé, même si d’autres catégories existent dans le modèle. Cette approche reste performante si la table ‘Produits’ est petite, mais attention aux tables volumineuses avec de nombreuses colonnes, où la transition de contexte peut ralentir les calculs.
Vous souhaitez apprendre l’essentiel sur Power BI ? Découvrez notre formation Power BI débutant CPF.
FAQ – FILTER DAX
Quelles sont les fonctions d’un filtre ?
Un filtre permet de restreindre ou de cibler les données selon des critères spécifiques. Il sert à isoler les éléments pertinents dans un ensemble plus vaste, facilitant ainsi l’analyse et la prise de décision. Les filtres peuvent être appliqués pour concentrer une mesure, une visualisation ou une requête sur un sous-ensemble précis de données.
Quelle est la fonction d’un filtre ?
La fonction principale d’un filtre est de contrôler le contexte dans lequel les données sont évaluées. En définissant des conditions, le filtre détermine quelles lignes ou quelles valeurs sont incluses ou exclues d’un calcul ou d’une visualisation. Cela garantit une lecture précise et ciblée des résultats.
Quelle est la différence entre une fonction CALCULATE et une fonction FILTER dans DAX ?
La fonction CALCULATE modifie le contexte d’évaluation d’une expression afin d’effectuer des calculs dans un contexte filtré. Elle agit comme un conteneur qui applique des filtres avant d’exécuter le calcul.
La fonction FILTER, quant à elle, retourne une table filtrée en fonction de conditions logiques. Elle ne réalise pas de calculs directement, mais fournit une table que CALCULATE ou d’autres fonctions peuvent ensuite exploiter. En résumé, FILTER définit un ensemble de données filtrées, tandis que CALCULATE utilise ces filtres pour produire une valeur.
Que fait la fonction FILTER() ?
FILTER() crée et renvoie une table contenant uniquement les lignes qui répondent à une ou plusieurs conditions. Elle n’altère pas la table d’origine, mais produit une nouvelle table virtuelle, utilisable dans d’autres fonctions DAX. Cette approche est particulièrement utile pour appliquer des critères complexes dans des calculs dynamiques.
Quels sont les 4 types de filtres ?
Les filtres peuvent être classés en quatre grandes catégories :
- Les filtres automatiques, générés par les relations entre les tables.
- Les filtres implicites, créés par les éléments placés dans une visualisation.
- Les filtres explicites, définis manuellement par l’utilisateur dans des formules ou des segments.
- Les filtres hiérarchiques, qui découlent des niveaux d’agrégation ou de drill-down dans les données.
Comment fonctionne le filtre ?
Un filtre agit en appliquant des critères à un ensemble de données pour sélectionner uniquement les éléments correspondants. Dans le cas de DAX, lorsqu’un filtre est appliqué, il modifie le contexte d’évaluation des mesures et expressions. Les calculs sont ensuite effectués uniquement sur les données retenues par le filtre, garantissant ainsi des résultats adaptés au contexte d’analyse choisi.
Vous débutez sur Power BI ? Commencez par notre formation gratuite !
Avant de vous lancer dans une formation complète, pourquoi ne pas explorer nos contenus gratuits ?
Chez NeoBI on aime partager. Tutoriels, vidéos pas-à-pas, articles pratiques… vous pouvez déjà :
• Comprendre les bases de Power BI
• Visualiser vos premières données
• Tester vos connaissances avec des cas concrets
C’est gratuit, sans engagement, et parfait pour se faire une première idée avant de passer à la vitesse supérieure 🚀




