Filtrer les données et les tables dans Power BI est un concept fondamental grâce auquel l’utilisateur pourra remplir tous ses objectifs d’analyses et de visualisation fluide et efficace de ses données regroupées ou pas, par catégories, par dates, par périodes ou encore par types.
🔥 Ne pas savoir filtrer dans Power BI est un handicap majeur à la livraison d’un rapport ou d’un tableau de bord dont l’objectif principal est de faire prendre rapidement les meilleures décisions possibles aux personnes en charge du pilotage de l’activité analysée.
Les possibilités de filtres dans Power BI sont multiples et variées, peut-être même trop nombreuses, mais il faut vraiment en prendre la mesure pour ne pas se noyer entre toutes les solutions de filtrage qui permettent parfois d’arriver au même résultat.
☑️ Prenons l’exemple simple de la table Ventes.xlsx déjà importée dont la colonne nommée Catégorie doit être filtrée suivant la valeur particulière A pour obtenir la somme des quantités pour cette seule catégorie.
Solution 1
Il y aura toujours une possibilité de filtrer les données en amont au niveau de Power Query.
💡 Cette solution est par ailleurs fortement recommandée par Microsoft lorsqu’il s’agit de réduire le jeu de données aux seules valeurs nécessaires au reporting final. Les tables injectées dans Power BI seront plus légères, les mesures plus rapides et les visuels s’actualiseront plus vite.
Dans notre exemple nous pourrions donc « remonter » dans Query en appuyant sur le bouton Transformer les données de l’onglet Accueil, Dupliquer la table Ventes par un clic droit, Renommer la nouvelle table Ventes Cat A par double clic sur son nom, puis filtrer sa colonne Catégorie sur la seule valeur A. La fermeture de Query injectera la nouvelle table dans la barre latérale Données de Power BI et il suffira alors d’utiliser sa colonne Quantité déjà résumée en Somme pour afficher la quantité totale du seul produit de catégorie A à partir d’un visuel carte par exemple.
Solution 2
Le visuel Table : filtrer par l’intermédiaire du visuel Table du volet vertical de droite Visualisations en glissant les colonnes Catégorie et Quantité de la table Ventes dans le champ nommé Colonnes du visuel. Cela fera apparaitre en première colonne les 3 catégories A, B et C sur 3 lignes distinctes et en deuxième colonne la somme automatique des quantités pour chacune des catégories, dont celle de la catégorie A, exactement comme avec un Tableau Croisé Dynamique dans Excel où l’on glisserait le champ Catégorie dans la zone Lignes et le champ Quantité dans la zone Valeurs. Un simple TCD agit donc comme un filtre.

Solution 3
Le volet latéral Filtres : filtrer par l’intermédiaire du visuel Carte ou Carte à plusieurs lignes en glissant la seule colonne Quantité dans le champ nommé également Champs du visuel. La somme totale des quantités apparaît instantanément. Il suffit alors de faire glisser la colonne Catégorie dans le volet latéral de Filtres, dans la zone Ajouter des champs de données de la partie Filtres sur ce visuel, puis de sélectionner la Catégorie A par un clic pour que la valeur du visuel Carte affiche le même total que dans la solution 1. La même action dans les autres parties Filtres dans cette page ou Filtres dans toutes les pages du même ruban vertical Filtres provoquerait le même filtrage sur tous les visuels de la page ou sur tous les visuels de toutes les pages de rapport.

Solution 4
Le visuel Segment : filtrer un visuel quelconque par l’intermédiaire du visuel Segment en forme d’entonnoir du volet latéral de droite Visualisations en glissant la colonne Catégorie de la table Ventes, ou Catégorie de la table Produits, dans le visuel. Cela fera apparaitre des cases à cocher avec les 3 catégories A, B et C. Cocher une case, ou plusieurs grâce à la touche Ctrl, filtrera tous les visuels de la page de rapports sur la ou les catégories sélectionnées.
Remarque : Les visuels de segments sont les plus utilisés dans la pratique pour filtrer les visuels d’une même page. Ils sont généralement positionnés sur la gauche ou sur le haut du canevas pour un filtrage fluide et direct des autres visuels de la page de rapport. Ils peuvent également être synchronisés entre différentes pages à l’aide du bouton Synchroniser les segments situé à l’extrême droite de l’onglet Afficher du menu supérieur de Power BI.
Solution 5
Les filtres croisés : chaque visuel d’une page de rapport agit par défaut comme filtre des autres visuels de la page. C’est la grande force de Power BI par rapport à Excel qui oblige à créer des segments spécifiques pour filtrer les tableaux et les graphiques croisés dynamiques. Dans Power BI on peut donc concevoir les visuels d’une même page pour qu’ils puissent se filtrer les uns les autres sans utiliser le volet Filtres ni de mesures complémentaires. Dans notre exemple, il suffira donc de créer un visuel quelconque croisant les Catégories et les Quantités puis un autre visuel contenant uniquement les Catégories pour filtrer le premier sur la seule Catégorie A. Les interactions entre chaque visuel d’une page peuvent être modifiées une à une grâce au premier bouton Modifier les interactions de l’onglet Format du menu supérieur.

Remarque : dans le réglage final des interactions de filtrage entre visuels il faudra toujours privilégier l’option Filtrer à l’option par défaut Mettre en surbrillance qui est souvent difficile à interpréter. Cette option par défaut pourra être modifiée dans les options de Power BI. Onglet Fichier / Options et paramètres / Options / Paramètre de rapport, tout en bas de la fenêtre principale Option.
Solution 6
Les mesures DAX : la richesse du langage DAX est telle, particulièrement pour filtrer les données, que plusieurs formules différentes permettent d’arriver au même résultat que précédemment (clic droit sur la table _Mesures accueillant les mesure dans l’onglet Données puis Nouvelle mesure) :
1. Avec la fonction CALCULATE : certainement la plus souple et la plus utilisée dans Power Pivot ou Power BI, qui appelle une expression calculée en premier argument et des filtres sur cette expression dans les suivants. L’équivalent des fonctions .SI.ENS ou SOMMEPROD dans Excel :
QTE CAT A CALCULATE = CALCULATE( SUM(Ventes[Quantité]) , Ventes[Catégorie] = "A"
)
2. Avec les fonctions SUMX et FILTER : SUMX est une fonction itérative qui permet de faire une somme « à la volée » sur une table entière, dont le premier argument est une table et le second une expression incluant un calcul sur colonne(s). La fonction FILTER en premier argument permet alors de retourner une table filtrée à SUMX, FILTER étant une fonction de table dont le premier argument est la table à filtrer et le second l’expression du filtre :
QTE CAT A SUMX =
SUMX(
FILTER(
Ventes,
Ventes[Catégorie] = "A"
),
Ventes[Quantité]
)
3. Avec la fonction IF : Cette mesure permet de créer une boucle conditionnelle classique. Elle sera insérer en tant que nouvelle colonne de la table Ventes dans l’Affichage table puis onglet Outils de table et bouton Nouvelle colonne. Elle permettra de ne compter que la quantité des lignes pour lesquelles le produit est de la catégorie A. Cette colonne sera résumée automatiquement en Somme et pourra directement être insérée dans un simple visuel carte.
CAT A =
IF(
Ventes[Catégorie] = "A", Ventes[Quantité],
0
)
Et on pourrait continuer comme cela presque sans fin tant les possibilités sont grandes avec le langage DAX inclus dans Power BI et dans Power Pivot pour Excel.
📊 Ces exemples ne sont là que pour vous présenter la richesse du langage DAX. Savoir filtrer les données avec le volet de filtres, un visuel de segment ou une mesure de type CALCULATE(Expression , Filtre) suffira largement pour 99% de vos projets de reporting !
Voir Toutes les fonctions DAX de filtrage.
🐱 Pensez à l’IA
Dans tous les cas, et quelque soit la formule à générer, pensez toujours à l’IA pour vous assister. Ce serait dommage de s’en passer.
Un prompt du type : « Formule DAX nommée CA TOTAL qui affiche la somme de la colonne Quantité de la table Ventes multipliée par la colonne Prix de la table liée Produits« , donnera toujours une réponse fiable que l’on pourra copier coller directement dans une nouvelle mesure. Il suffira d’être précis sur le nom des colonnes et des tables qui entrent en jeu dans le calcul souhaité.
🧠 DAX comprend également des fonctions d’intelligence temporelle qui permettent de manipuler des données en utilisant des périodes de temps (jours, mois, trimestres et années, entre autres), puis de générer et comparer des calculs sur ces périodes. Il s’agit donc aussi de fonctions de filtrage, mais sur le temps uniquement.
Remarque importante : avant d’utiliser ces fonctions de Time Intelligence, assurez-vous de marquer l’une des tables contenant la colonne de date comme Table de dates principale. Il est d’ailleurs fortement recommandé d’associer à tous vos jeux de données une table de dates de référence allant jour après jour de la date la plus ancienne du jeu de données à la date la plus récente, ceci automatiquement avec la fonction CALENDARAUTO. Un code universel comprenant cette fonction est disponible ici.
📅 Si vous ne l’avez pas déjà fait, vous pouvez copier le code DAX de ce calendrier universel à partir de la page power-bi.fr/calendrier à coller après avoir créer une Nouvelle table à partir de l’onglet Outils de table. Cette table de dates universelle à relier à toutes vos tables contenant des colonnes de dates à analyser pourra vous servir pour tous vos projets. Il ne faudra pas oublier de la Marquer comme table de dates à partir du bouton portant le même nom du menu Outils de table, et ne pas oublier non plus de la relier dans la Vue de Modèle aux tables de faits à analyser par l’intermédiaire de leurs colonnes de dates.
🧠 Les fonctions DAX d’intelligence temporelle les plus utilisées sont :
- TOTALWTD, TOTALMTD, TOTALQTD, TOTALYTD qui évaluent la valeur de l’expression pour la semaine, le mois, le trimestre ou l’année jusqu’à ce jour, donc en cours, dans le contexte de filtre actuel.
- PREVIOUSDAY, PREVIOUSWEEK, PREVIOUSMONTH, PREVIOUSQUARTER, PREVIOUSYEAR qui retourne une table qui contient une colonne de toutes les dates du jour, de la semaine, du mois, du trimestre ou de l’année précédent(e), selon la première date de la colonne dates, dans le contexte actuel. Pratique pour calculer des variations d’une période à l’autre.
- SAMEPERIODLASTYEAR qui retourne une table qui contient une colonne de dates déplacées d’une année en remontant dans le temps à partir des dates de la colonne dates spécifiée dans le contexte actuel.
🌐 Aller plus loin
- Ajouter un filtre dans un rapport
- Mettre en forme les filtres dans Power BI
- Types de filtres dans Power BI
- Segments dans Power BI
- Toutes les fonctions DAX de filtrage
- Toutes les fonctions DAX d’intelligence temporelle
👉 C’est à vous !
- Filtrez de toutes les façons possibles la somme des quantités de la seule Catégorie A.
- Filtrez de toutes les façons possibles la somme du CA de la seule Catégorie B.
- Créez une nouvelle table nommée _Variations qui accueillera les mesures suivantes :
- Quantité Totale pour l’Année en cours, le Trimestre en cours et le Mois en cours.
- Variations de toutes ces valeurs de Quantité Totale par rapport à la période précédente, puis à la même période de l’année précédente.
- Quantité Totale sur une année glissante à partir d’un segment contenant la colonne Année Mois.
- Affichez les résultats dans des visuels Carte simple ou Carte à plusieurs lignes ou Carte Indicateur de performance clé.
- Affichez les évolutions périodiques dans des visuels Graphique en courbes et les variations périodiques dans des visuels Histogramme groupé.
- Comparez vos résultats avec les pages Filtrer & Visualiser et Time Intelligence du rapport de référence POWER-BI.FR.pbix.
❓Testez-vous sur les 2 dernières parties
Quiz Mesures et Filtres dans Power BI
💪 Autoformation
Suivez pas à pas les ateliers 8, 9 et 10 pour vous muscler sur cette partie
