Filtre sur un visuel : attention aux pièges !

Proposé par André Meyer-Roussilhon

9 septembre 2021

Restez informé, abonnez-vous à la newsletter (2 fois / mois)

13 + 14 =

Présentation du modèle

Il s’agit du suivi des demandes dans une bibliothèque universitaire, autour de trois auteurs. Je pars d’un fichier Excel, mais le même scénario aurait pu être développé sur une base de données :

Ce fichier va me permettre d’illustrer différentes situations, pourtant très ressemblantes (le même filtre est appliqué à chaque fois : un nombre de demandes supérieur à 40 ), mais affichant des résultats totalement différents :

Je précise ici que j’utilise une mesure explicite (_nb de demandes) conformément à la mise en place d’un modèle de données solide :

_nb de demandes = SUM(Feuil1[nb de demandes])

Le résultat est exactement le même si l’on utilise dans les tableaux la colonne elle-même et donc la mesure implicite que génère Power BI.

Comment fonctionnent les filtres

Commençons par le premier tableau. Le voici sans filtre :

Dans le Volet Filtres, je configure le filtre _nb de demandes > 40 :

Cela peut paraître évident, mais il y a là une règle importante à retenir : le filtre ne s’applique pas au niveau de la table source (où aucune ligne quotidienne n’est supérieure à 40), mais au niveau de détail du visuel dans lequel est affichée la donnée (ici, mois et auteur).

Je vais utiliser exactement les mêmes données pour construire cette fois un tableau croisé (matrice), sans filtre :

Le total, 336, est bien entendu le même

Et j’ajoute le même filtre _nb de demandes > 40 :

Le résultat n’a plus rien à voir (299 au lieu de 102 sur le premier tableau) !

Le filtre s’applique en effet cette fois sur le total de la ligne (total mensuel).

Il suffit d’inverser les colonnes et les lignes pour s’en convaincre :

Cette fois-ci, le filtre (pourtant présent) n’a aucun effet, puisque chaque auteur totalise plus de 40 demandes.

Notez au passage que même si j’enlève le total au niveau ligne (et que je conserve le filtre), le résultat ne varie pas :

Et pour compliquer encore les choses, si maintenant je créé une matrice avec exploration, le résultat ne porte plus sur les données visibles, mais sur le niveau de détail du tableau (comme dans le tableau simple) :

Enfin pour terminer, si vous appliquez le filtre au niveau de la page, et non plus au niveau du visuel, c’est au niveau de la table source qu’il s’applique (vous ne pouvez pas utiliser la mesure, mais uniquement la colonne). Dans ce cas, l’ensemble des tableaux vus jusque là ne sont pas filtrés.

CALCULATE et le filtre

Plutôt que d’appliquer le filtre sur le visuel, je vais maintenant l’intégrer dans une mesure :

Ici, l’utilisation de CALCULATE impose de faire référence à la colonne elle-même (ligne 4).

Une fois la mesure ajoutée à un tableau, qu’il soit simple ou croisé, voici le résultat :

Vide ! En effet, cette fois, aucune ligne de la table source n’est supérieure à 40. L’utilisation de CALCULATE implique que le filtre porte bien sur la table source.

Conclusion

Dans tous les exemples que nous avons pris, l’exigence fonctionnelle était la même : filtrer pour ne retenir que les cas où le nombre de demandes est supérieur à 40. Mais le niveau où le filtre est placé (sur le visuel, sur la page, ou dans un CALCULATE), et le type de visuel utilisé, déterminent l’impact du filtre, et modifient considérablement le résultat. La distinction majeure repose sur la construction du filtre : porte-t-il sur la colonne non agrégée de la table source (comme dans le CALCULATE ou le filtre de page) ou sur sa version agrégée de manière implicite ou explicite (la mesure _nb de demandes dans notre exemple).

Articles associés :

Créer un graphique à base zéro pour suivre l’évolution

Créer un graphique à base zéro pour suivre l’évolution

Dans un graphique à base zéro, le premier point sert de référence (le point zéro), et tous les autres sont calculés en pourcentage de variation par rapport à cette référence. Ce type de graphique est utilisé par exemple dans le domaine financier, pour suivre l’évolution du cours d’une action – mais il peut servir pour suivre l’évolution de tout type de donnée.
Le graphique est intimidant, mais sa réalisation est en fait très facile, et repose sur des formules DAX étonnamment simples.

Exporter de Power BI vers CSV ou TXT sans être limité par le nombre de lignes

Exporter de Power BI vers CSV ou TXT sans être limité par le nombre de lignes

Lors de la dernière session de formation Power BI Expert que j’ai animée, un stagiaire a soulevé la question de la limite du nombre de lignes qu’il est possible d’exporter à partir de Power BI vers un fichier CSV. Cette limite est fixée à 30 000 lignes. Mais alors comment faire lorsque, ce qui n’est pas rare, vous souhaitez exporter une table ou un visuel contenant plus de 30 000 lignes ? Dans cet article je vous propose la solution.

Utiliser la mise en forme conditionnelle pour indiquer l’état, l’évolution et la tendance

Utiliser la mise en forme conditionnelle pour indiquer l’état, l’évolution et la tendance

L’idée qui fonde Power BI, c’est de transmettre visuellement de l’information. Transmettre de façon efficace et « économe » : la représentation la plus simple pour le message le plus efficace. C’est en réfléchissant à cette question que j’ai conçu pour un client une solution qui offre trois couches d’information : l’état, l’évolution, et la tendance d’une donnée, dans un seul visuel.