• 6 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 26/09/2024

Concevez des visuels interactifs avec les filtres d’expression

Identifiez votre contexte de filtre

Félicitations ! Vos premiers indicateurs ont fait sensation au sein de l’équipe. Toutefois, bien que votre analyse fournisse des perspectives nationales sur le marché de l’emploi, plusieurs questions ont été soulevées concernant la représentativité de ces données pour une scale-up spécialisée dans la retail tech.

Afin de répondre à ces interrogations et d'approfondir l'analyse, Fatima vous demande désormais de développer un véritable tableau de bord interactif.

Ce tableau de bord devra donc non seulement intégrer les éléments que vous avez déjà développés, mais aussi permettre des analyses plus détaillées et ciblées grâce à des filtres pour zoomer sur des aspects spécifiques du marché.

En gros je dois permettre à l’utilisateur de filtrer (ou pas) sur mes indicateurs pour lui donner une vue de détail et vue globale c’est ça ?

Exactement ! Et pour cela vous devez maîtriser pour chaque calcul ce qu’on appelle le “contexte de filtre”. C’est un principe fondamental en DAX, à chaque fois qu’une expression est calculée pour une mesure, le contexte de filtre c’est la combinaison de tous les filtres actifs. C’est comme ça que la mesure sait les valeurs à inclure ou à exclure dans les calculs

Prenons un exemple :

Nous avons calculé précédemment une mesure du nombre d’offres d’emploi, j’ai ajouté un visuel de segment sur les secteurs d’activité à côté. Lorsque je sélectionne un ou plusieurs secteurs d’activité, la mesure change de valeur (voir ci-dessous).

Changement de valeur de la mesure selon la sélection du ou des secteurs avec sur le côté gauche, un filtrage large qui donne 1983 offres d'emploi et sur la droite un filtrage plus limité qui donne 6 offres d'emploi
Changement de valeur de la mesure selon la sélection du ou des secteurs

Pourquoi ?

Ce décompte en “live” du nombre d’offres d’emploi lié à ma sélection est rendu possible grâce à mon modèle de données. La table des secteurs d’activité est connectée à la table des offres d’emploi dans mon modèle.

Connexion des trois tables de données dans DAX, industries connectée avec job_industries connectée elle-même avec postings
Connexion des trois tables de données dans DAX

Ainsi, à chaque fois qu’un secteur d’activité est sélectionné, la table des offres d’emploi est filtrée sur les offres associées à ce secteur d’activité.

Dans le modèle de données, je vois des petites flèches sur les liens, à quoi servent-elles ?

Flèches indiquant le sens de propagation des contextes de filtre
Flèches indiquant le sens de propagation des contextes de filtre

Ces flèches sont le sens de propagation des contextes de filtre. Elles définissent comment les filtres appliqués dans une table se propagent à travers les relations vers d'autres tables.

Les relations peuvent être unidirectionnelles ou bidirectionnelles. Le sens de propagation détermine si et comment les filtres actifs dans une table influencent les calculs dans une autre table liée. Vous pouvez définir le sens de propagation de la relation :

  • en double-cliquant sur celle-ci dans l’onglet modèle de données, 

  • puis en changeant la sélection dans “Direction du filtre croisé”.

Fenêtre de modification de la relation entre les tables avec un premier champs
Fenêtre de modification de la relation entre les tables

OK j’ai bien compris comment fonctionne le filtrage laissé à la main de l’utilisateur. Mais si je veux garder un indicateur au niveau global, et pas qu’il change de valeur à chaque sélection de l’utilisateur ?

Et bien pour cela nous allons découvrir la fonctionCALCULATE.

Utilisez la fonction CALCULATE

La fonctionCALCULATE permet d’évaluer une expression DAX dans un contexte de filtre imposé. AvecCALCULATE, vous avez la capacité de manipuler le contexte de filtre de manière à inclure ou exclure des données selon des critères spécifiques. Cela vous donne un grand contrôle sur vos calculs, car vous pouvez combiner plusieurs filtres pour des analyses plus complexes.

Regardons en détail la composition de cette fonction :

Syntaxe

Description

Paramètres

CALCULATE(

<expression>

[, <filter1> 

[, <filter2> 

[, …]]])

Évalue une expression dans un contexte de filtre modifié.

  • Expression : L’expression à calculer.

  • Filter 1, 2, … : filtres à appliquer pour évaluer l’expression.

Prenons un exemple :

Fatima nous demande de calculer la proportion des offres d’emploi pour lesquelles le travail à distance est autorisé. Mais elle nous demande de préciser ce calcul en ne prenant en compte que les emplois à temps plein et d’ignorer les offres d’emploi à temps partiel. Ethikwear ne propose que des offres d'emploi à temps complet.

Dans ce calcul, nous devons donc imposer un filtre dans notre fonction CALCULATE. Il s’écrit de la façon suivante :

PERCENTAGE_REMOTE_ALLOWED = 
CALCULATE ( 
    AVERAGE ( postings[remote_allowed] ) , 
    postings[work_type] ="FULL_TIME"
)

Dans notre fonctionCALCULATE()nous avons ajouté les éléments suivants :

  • Notre expression, qui est un calcul de moyenne avec AVERAGE()sur la colonneremote_allowedqui contient un 1 ou un 0 pour chaque offre d’emploi afin d’indiquer que l’emploi peut être réalisé à distance. 1 veut dire que l’emploi peut être réalisé à distance, 0 qu’il ne peut pas l’être. EN faisant la moyenne de ces 1 et 0 sur une sélection nous avons donc la proportion des emplois qui peuvent être réalisés à distance,

  • Un filtre sur la colonnework_typepour ne sélectionner dans ce calcul que les emplois à temps plein (indiqué enFULL_TIMEdans la colonne).

Pour nous faciliter la vie DAX met à disposition des fonctions de filtres qui sont spécialement conçues pour manipuler les contextes de filtre. Découvrons-les !

Découvrez les fonctions de filtres

Avec les fonctions de filtre, nous pouvons faire abstraction, totalement ou partiellement, des filtres de contexte appliqués par l’utilisateur. En utilisant ces fonctions dans vos expressions DAX, vous pouvez créer des analyses plus complexes et précises en contrôlant explicitement quels filtres doivent être ignorés ou appliqués.

Explorons quelques-unes de ces fonctions clés que nous allons utiliser dans notre fonctionCALCULATE:

Syntaxe

Description

Paramètres

FILTER(

[<table> | <filter>

)

Renvoie une table qui représente un sous-ensemble d’une autre table ou expression.

  • Table : table dont on veut renvoyer toutes les valeurs.

  • Filter : Le filtre à appliquer

ALL( [

<table> | 

<column>

[, <column>

[, <column>

[,…]]]] )  

Renvoie toutes les lignes d’une table, ou toutes les valeurs d’une colonne, en ignorant les filtres qui ont été appliqués. Cette fonction est utile pour effacer les filtres et créer des calculs sur toutes les lignes d’une table.

Exemple : Compter la somme des offres d’emploi de tous les secteurs d’activité, quelque soit la sélection de l’utilisateur.

  • Table : table dont on veut renvoyer toutes les valeurs.

  • Colonnes : Les colonnes de la table dont on veut renvoyer toutes les valeurs

ALLEXCEPT(

<table>,

<column>

[,<column>

[,…]])  

Supprime tous les filtres de contexte de la table, à l’exception de ceux qui ont été appliqués aux colonnes spécifiées.

Exemple : Compter la somme des offres d’emploi par secteur d’activité.

  • Table : table dont on veut renvoyer des valeurs non filtrées.

  • Colonnes : Les colonnes de la table sur lesquelles on autorise les filtres.

C’est un vrai casse-tête ! Je ne suis pas sûr de bien avoir compris les différences et l’intérêt de ces fonctions.:( 

C’est tout à fait normal, ce sont des notions complexes qui méritent de la pratique et des EXEMPLES ! Dans le screencast suivant nous allons voir sur un exemple précis les différences de résultats que nous obtenons en utilisant ces différents filtres dans notre fonctionCALCULATE:

Dans ce screencast, nous avons vu :

  • L’utilisation deFILTERpour appliquer un filtre sur une table

  • L’utilisation deALLdansCALCULATEpour évaluer une expression sur toute une table quel que soit le filtre

  • L’utilisation deALLEXCEPTpour autoriser le “slicing” (le filtrage) de la table selon une de ses colonnes

Vous savez maintenant presque tout faire sur DAX ! Avançons sur le tableau de bord pour notre responsable de stage.

À vous de jouer

Contexte

Fatima veut que vous affichiez sur le tableau de bord un indicateur du nombre d’offres d’emploi en cours pour certains postes comme celui de Data Analyst pour lesquels ils rencontrent des difficultés de recrutement (afin de mesurer la concurrence et de sponsoriser leurs offres pour qu’elles sortent du lot quand il y a beaucoup d’offres similaires).

Consignes

Utilisez une mesure pour calculer le nombre d’offres d’emploi intitulées “Data Analyst” dans nos données.

En résumé

  • Soyez toujours attentifs à l'importance du sens de propagation des contextes et ses impacts sur les calculs et les résultats dans vos analyses de données.

  • CALCULATEest l'une des fonctions les plus utiles de DAX. Elle permet d'évaluer une expression DAX dans un contexte de filtre personnalisé.

  • Utilisez les fonctions de filtre de DAX qui vous permettent de gérer les contextes de façon précise et de maîtriser les informations présentées à vos utilisateurs.

Nous n’avons pas parlé des Dates jusqu’ici. Dans le chapitre suivant nous allons voir que DAX propose de nombreux outils pour traiter ce type de données très spécifique. C’est parti !

Exemple de certificat de réussite
Exemple de certificat de réussite