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 table
job_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 :
É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
É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 :
un calcul itérativement sur chaque ligne puis,
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 |
|
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. |
|
MINX ( <Table>, <Expression>, [<Variant>] ) | Renvoie la plus petite valeur après avoir calculé une expression pour chaque ligne d’une table |
|
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. |
|
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 ? |
|
TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…]) | Renvoie les N premières lignes de la table spécifiée. |
|
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’appelle
TABLE_job_industries_synthesis
On utilise la table
job_industries
en entréeOn groupera notre calcul d’agrégation par les valeurs dans la colonne
[industry_id]
de la tablejob_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
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 salaires
salaries
.Utilisez une visualisation de “Tableau” pour restituer cet indicateur dans Power BI par secteur d’activité (colonnes
industry_id
etindustry_name
de 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 famille
Table
(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 !