• 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

Calculez les indicateurs clés de votre modèle de données

Votre responsable de stage, Fatima, vous félicite pour vos premiers résultats !

Enthousiasmée par votre performance, elle vous explique que le service RH est actuellement submergé par les demandes de recrutement, ce qui a des répercussions sur les équipes commerciales qui ne sont pas satisfaites de cette situation. Pour remédier à ce problème, votre responsable souhaite mieux organiser les efforts de recrutement en fonction des différents types de profils recherchés.

Elle vous encourage à approfondir votre maîtrise de DAX pour Power BI, en particulier dans la construction d'indicateurs pour des visualisations. En effet, Fatima voudrait réaliser prochainement une étude comparative des pratiques de recrutement de la concurrence.

Dans ce chapitre, nous allons explorer en détail les différentes familles de fonctions DAX, accompagnées de cas pratiques pour chaque type d'utilisation.

Calculez des agrégats rapides

Les fonctions d'agrégation sont essentielles pour tout analyste de données, car ces fonctions permettent de synthétiser de larges jeux de données en valeurs résumées, ce qui est particulièrement utile pour obtenir une vue d'ensemble de vos données et identifier des tendances ou des anomalies. Dans le cadre de votre travail avec DAX pour Power BI, vous utiliserez fréquemment ces fonctions pour créer des indicateurs clés et optimiser vos analyses.

Les fonctions d'agrégation courantes sont les suivantes :

Syntaxe

Description

Paramètres

SUM ( <Nom de la colonne> )

Réalise la somme de tous les nombres d’une colonne

Nom de la colonne (exemple : Table[colonne])

AVERAGE ( <Nom de la colonne> )

Réalise la moyenne arithmétique de tous les nombres d’une colonne

COUNT ( <Nom de la colonne> )

Compte le nombre de lignes non-vides de la colonne

DISTINCTCOUNT ( <Nom de la colonne> )

Compte le nombre de valeurs distinctes de la colonne

Au chapitre précédent, vous vous souvenez de la mesure que nous avions créée pour Fatima afin de compter les offres d’emplois sélectionnées par l’utilisateur ?

MEASURE_job_count = 
DISTINCTCOUNT( job_industries[job_id] )

Et bien maintenant vous êtes capables d’analyser la syntaxe de cette mesure. C’est :

  • un décompte des valeurs distinctes d’une colonne,

  • la colonne en question se situe dans la tablejob_industries

  • et cette colonne s’appelle[job_id]

Dans la pratique vous aurez probablement souvent besoin d’aller plus loin que les agrégats et réaliser des transformations sur vos données. Regardons cela ensemble.

Enrichissez vos données

Dans mes données, si j’ai deux offres d’emplois nommées “Data Manager” et “data manager” comment faire pour uniformiser ces titres ?

Vous pouvez utiliser les fonctions de texte pour transformer vos données textuelles. Ces fonctions vous permettent d'uniformiser le format des textes, de les concaténer, ou encore de mesurer la longueur de ces textes, entre autres.

Quelques exemples de fonctions :

Syntaxe

Description

Paramètres

LOWER ( <Text> )

Convertit toutes les lettres d’une chaîne de caractères en minuscule

Un texte (exemple : “Responsable RH”)

UPPER ( <Text> )

Convertit toutes les lettres d’une chaîne de caractères en majuscule

LEN ( <Text> )

Renvoie le nombre de caractère d’un texte

CONCATENATE ( <Text1>, <Text2> )

Concatène deux chaînes de caractères en une seule.

Deux textes (exemple : “Responsable RH” et “Ethikwear”)

Fatima me demande de calculer le salaire moyen proposé pour les postes de Data Manager : Comment faire pour calculer le salaire moyen pour chaque offre, puis calculer la moyenne de ses salaires moyens ?

Très bonne question. Ce genre de situations arrivait souvent sur Excel et pouvait être fastidieux à résoudre du fait des étapes à calculer. Dans DAX nous avons les fonctions d’itérateur qui vous permettent d’évaluer une expression pour chaque ligne d'une table et ensuite d’agréger les résultats obtenus. Ces fonctions sont particulièrement utiles pour effectuer des calculs complexes qui ne peuvent pas être réalisés avec des fonctions d'agrégation classiques.

Prenons le temps de bien comprendre la mécanique de ces fonctions avec l’exemple ci-dessous.

Utilisons la tablesalaries  qui contient les fourchettes de salaires pour chaque offre d’emploi. Pour créer une mesure afin de calculer la moyenne des salaires moyens pour une sélection active d’offres d’emploi. Voilà les étapes que nous devrions suivre : 

  1. Étape 1 : Pour chaque ligne d’une sélection d’offres d’emploi, nous devons calculer un salaire moyen en réalisant le calcul(salaire maximum + salaire minimum) / 2

  2. Étape 2 : Il nous faudrait faire ensuite la moyenne de tous ces salaires moyens calculés pour chaque ligne.

C’est exactement ça, j’ai déjà eu à le faire sur Excel 😭. Facile à expliquer mais compliqué à faire.

Exactement. C’est pour ces situations précises, lorsque nous devons effectuer :

  1. un calcul itérativement sur chaque ligne puis, 

  2. faire une agrégation du résultat de ces calculs,

que les fonctions d’itérateur qui se terminent par un “X” ont été créées.

Regardons ensemble quelques fonctions d’itérateur courantes :

Syntaxe

Description

Paramètres

SUMX ( <Table>, <Expression> )

Renvoie la somme d’une expression calculée pour chaque ligne d’une table

  • Table : table sur laquelle l’expression est calculée.

  • Expression : L’expression à calculer pour chaque ligne

RANKX ( <Table>, <Expression> [, <Value> [, <Order> [, 

<Ties> ]]] )

Renvoie le classement d’une expression calculée pour chaque ligne d’une table.

Exemple : On calcule le nombre d’offres d’emploi par secteur d’activité, comme au chapitre précédent, puis on classe ces secteurs d’activité par nombre d’offres d’emploi.

  • Table : table sur laquelle l’expression est calculée.

  • Expression : L’expression à calculer pour chaque ligne

  • Value : parfois vous pouvez ne vouloir que le classement d’une valeur spécifique. Dans ce cas, entrez là dans ce champ pour obtenir ce résultat.

  • Order : sens du classement

  • Ties : comportement à adopter en cas d’égalité 

    • ignorer pour sauter les égalités (une seule ligne pour une même valeur), 

    • dense pour afficher les égalités (autant de lignes que de valeurs).

MINX ( <Table>, <Expression>, [<Variant>] )

Renvoie la plus petite valeur après avoir calculé une expression pour chaque ligne d’une table

  • Table : table sur laquelle l’expression est calculée.

  • Expression : L’expression à calculer pour chaque ligne

  • Variant : booléen (Vrai ou Faux) qui permet d’indiquer si vous souhaitez que l’expression inclue les données non numériques. Si variant est “VRAI” vous pourrez utiliser cette expression pour calculer le minimum de chaînes de caractères également (ex: A est avant B…)

MAXX ( <Table>, <Expression>, [<Variant>] )

Renvoie la plus grande valeur après avoir calculé une expression pour chaque ligne d’une table

On retrouve les mêmes paramètres qu'au-dessus pour MINX().

Réalisez des agrégats complexes

Dans le chapitre précédent nous avons calculé une table de synthèse pour compter les offres d’emploi par secteur d’activité avecSUMMARIZE, j’aimerais comprendre cette agrégation. 

Parfait, car maintenant tu es prêt 🙂! SUMMARIZE est une fonctionTable en DAX. Ces fonctions nous servent à transformer des ensembles de données pour créer des tables à partir de calculs plus complexes.

Voyons quelques fonctions courantes :

Syntaxe

Description

Paramètres

RELATED(<column> )

Retourne une valeur associée provenant d’une autre table.

  • Column : colonne d’une table donnée à utiliser pour un calcul. Attention la colonne doit être liée par le modèle de données à la table, colonne ou mesure où ce calcul est effectué. Sinon nous aurons une valeur vide.

SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)

Renvoie une table récapitulative des agrégats demandés sur un ensemble de groupes.

Exemple : Vous vous rappelez que c’est cette fonction que nous avons utilisée au chapitre précédent pour calculer une table de synthèse ?

  • Table : table sur laquelle l’expression est calculée.

  • GroupBy_columnName : colonne sur laquelle réaliser l’agrégat

  • Name : Nom donné à l’agrégat

  • Expression : L’expression à calculer pour chaque ligne

TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])  

Renvoie les N premières lignes de la table spécifiée.

  • N_Value : Nombre de valeurs à renvoyer

  • Table : table sur laquelle l’expression est calculée.

  • Expression : L’expression selon laquelle classer les lignes

  • Order : sens du classement

Reprenons maintenant notre calcul du nombre d’offres par secteur d’activité ci-dessous :

TABLE_job_industries_synthesis = 
SUMMARIZE (
job_industries, 
job_industries[industry_id], 
"Nombre total d’offres d’emploi par secteur", DISTINCTCOUNT( job_industries[job_id] )
)

Vous pouvez maintenant analyser que ce calcul fait les opérations suivantes :

  • On crée une table qui s’appelleTABLE_job_industries_synthesis

  • On utilise la tablejob_industries en entrée

  • On groupera notre calcul d’agrégation par les valeurs dans la colonne[industry_id] de la table job_industries

  • le calcul qui doit être fait est un compte du nombre distinct de références d’offres d’emploi qui sont dans la colonne[job_id] de la tablejob_industries

  • Cette nouvelle colonne d’agrégat doit s’appeler “Nombre total d’offres d’emploi par secteur” 

Bien joué ! Vos calculs sont prêts 🙂

Maintenant il faut les visualiser dans Power BI. Voyons ça ensemble.

Visualisez vos résultats

Une fois vos formules DAX créées, et bien il faut en visualiser le résultat !

Le choix des graphiques pour représenter vos données conditionne totalement la compréhension juste et rapide des informations présentées.

Dans la vidéo suivante nous allons maintenant voir comment visualiser le résultat d’une mesure calculée sur DAX.

Dans ce screencast, nous avons vu :

  • le calcul d’une table calculée

  • la vérification du modèle de données pour les éléments calculés

  • le nommage et le typage de nos données calculées

  • la visualisation de nos résultats dans Power BI

Appliquons tout cela de façon très pratique maintenant pour calculer un nouvel indicateur !

À vous de jouer

Contexte

Fatima souhaite obtenir une vue d’ensemble détaillée sur les métiers d’Ethikwear pour lesquels il y a une forte demande sur le marché de l’emploi.

Hello à nouveau ! 

Dis-moi, sur les prochaines semaines j'aimerais que tu nous aides avec une étude de la concurrence. Idéalement je souhaiterais pouvoir communiquer au DRH des réponses sur les salaires que proposent nos concurrents au recrutement.

Cette semaine ma priorité c’est de comparer les salaires moyens proposés par nos concurrents comparativement à ce que nous offrons chez Ethikwear. Cette info nous est nécessaire de toute urgence pour ajuster nos propres offres. 

Merci beaucoup et bon courage ! 👍

Fatima

Consignes

  1. Utilisez une mesure pour calculer les salaires moyens en euros proposés sur les offres d’emploi. Utilisez pour cela vos colonnes calculées de salaire maximum et de salaire minimum en euros dans la table des salairessalaries  .

  2. Utilisez une visualisation de “Tableau” pour restituer cet indicateur dans Power BI par secteur d’activité (colonnesindustry_idetindustry_namede la table industries).

En résumé

  • Les fonctions d'agrégation courantes (SUM,AVERAGE…) sont utiles pour mieux comprendre la distribution des données.

  • Les itérateurs (SUMX,RANKX,MINX ,MAXX) permettent de faire des calculs par ligne puis d’en faire une agrégation finale.

  • Les fonctions de la familleTable (SUMMARIZE,TOPN,RELATED) analysent vos tables et les liens entre elles. Elles vous permettent de calculer des tables d’agrégats complexes.

  • Concevoir un graphique repose sur certaines bonnes pratiques indispensables afin de rendre les données facilement compréhensibles et utilisables par vos utilisateurs

  • Anticiper l’impact du contexte pour l'affichage de vos calculs est indispensable pour présenter les données de manière appropriée.

Dans le prochain chapitre, nous allons développer ce dernier point du résumé avec la notion de filtre. Nous allons apprendre à maîtriser le contexte de nos formules DAX !

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