2. ▪ 30 ans d’expérience avec SQL Serveur
▪ Consultant en base de données depuis 1996
▪ Formateur chez Technologia depuis 2002
3. Introduction à DAX
Qu'est-ce que DAX?
– Data Analysis Expression
– Langage d'expression pour Power BI et
SSAS Tabular
Pourquoi DAX?
– Conçu pour prendre en charge une base
d'utilisateurs plus large
– Plus simple que les langues techniques
traditionnelles à apprendre
– Tirer parti des connaissances existantes
des formules Excel
– Moins d'apprentissage pour les analystes
4. À quoi est utilisé le DAX?
Colonnes calculées
– Création de nouvelles colonnes dans le
modèle
– Méthode de connexion des sources de
données disparates avec plusieurs
colonnes clés
Mesures calculées
– Création des calculs agrégés pour les
rapports
– Gestion des relations complexes
(dimension de rôle)
– Intelligence temporelle
5. 1 - Excitation
– Semblable à Excel
– Formules de base faciles
– Ajout rapide et efficace de la
valeur analytique aux
modèles de données.
Les 4 phases du DAX (1 de 4)
6. Les 4 phases du DAX (2 de 4)
2 - Confusion
– Plus complexe que prévu
– Je peux ignorer les filtres?
– Pourquoi les mesures
fonctionnent-elles de cette
façon?
7. Les 4 phases du DAX (3 de 4)
3 - Colère
– Confusion totale
– Contexte de filtre et
contexte de ligne ?
8. Les 4 phases du DAX (4 de 4)
4 - Compréhension
– Ok, je pense que je
comprends le contexte
– Je sais que je ne suis pas
un expert, mais je
comprends maintenant
comment surmonter les
problèmes.
9. La conversion se fait automatiquement
– Date + Integer = Date
Opérateurs (&, +)
– & = String
– + = Integer
Conversion de type de données
10. Fonctions utiles…
Formatage
– FORMAT
Concaténation
– CONCATENATE
– CONCATENATEX
Case
– LOWER
– UPPER
Trimming
– LEFT
– RIGHT
– TRIM
Fractionnement
• MID
Recherche
• SEARCH
• FIND
Remplacement
• REPLACE
• SUBSTITUTE
Vide
• BLANK()
11. FORMAT
Convertit une valeur en texte
– Selon le format spécifié
Options de formats
– Formats prédéfinis
– Formats définis par l'utilisateur
Types
– Nombres
– Dates et heures
12. Quelques exemples de FORMAT
Mois = FORMAT([Date], "MMMM")
DayOfWeek = FORMAT([Date],"DDDD")
MonthShort = FORMAT([Date], "MMM")
MMM-YYYY = FORMAT([Date],"MMM-YYYY")
13. FIND et SEARCH
Trouver la position de départ d'une chaîne
– Find - sensible à la casse et sensible aux accents
• Plus rapide que Search
– Search - insensible à la casse mais est sensible aux accents.
• Vous pouvez utiliser des caractères génériques - le point
d'interrogation (?) et l'astérisque (*) - dans find_text.
Un point d'interrogation correspond à n'importe quel caractère
unique; un astérisque correspond à n'importe quelle séquence de
caractères.
Paramètres
– Find_Text - texte à trouver
– Within_Text - la chaîne à rechercher
– Start_Num - par où commencer dans la chaîne (facultatif)
– NotFoundValue - valeur à retourner si aucun match (facultatif)
15. Mesures calculées (2/2)
Mesures explicites
– Mesure définie
par l'utilisateur
créée par
l'écriture d'une
formule dans
l'éditeur
16. Création d'agrégats
• AVERAGE
• AVERAGEA
• AVERAGEX
• COUNT
• COUNTA
• COUNTAX
• COUNTBLANK
• COUNTROWS
• COUNTXMAX
• MAXA
• MAXX
• MIN
• MINA
• MINX
• SUM
• SUMX
17. Colonnes calculées vs Mesures calculées
• Même si elles se ressemblent, il existe une grande différence
entre les colonnes calculées et les mesures calculées.
• La valeur d'une colonne calculée se calcule lors de
l'actualisation des données et utilise la ligne actuelle comme
contexte. Cela ne dépend pas de l'interaction de l'utilisateur
dans le rapport.
• Les relations sont inactives pour les colonnes calculées.
• Une mesure agit sur des agrégations de données définies
par le contexte actuel, qui dépendent du filtre appliqué dans
le rapport, tel que la sélection du segment, des lignes et des
colonnes dans un tableau croisé dynamique ou des axes et
filtres appliqués à un graphique.
18. Quand choisir une Colonne calculée
• À ce stade, vous vous demandez peut-être quand utiliser des
colonnes calculées ou des mesures calculées.
• Vous devez définir une colonne calculée chaque fois que vous
souhaitez effectuer les opérations suivantes:
– Utilisez les résultats calculés dans un segment ou affichez
les résultats sous forme de lignes ou de colonnes dans un
tableau croisé dynamique ou dans les axes d'un graphique,
ou utilisez le résultat comme condition de filtre dans une
requête DAX.
– Définissez une expression strictement liée à la ligne en
cours. Par exemple, Prix * Quantité.
– Catégoriser le texte ou les chiffres. Par exemple, une plage
de valeurs pour une mesure, des plages d'âges de clients,
telles que 0-18, 18-25 ans, etc.
20. Quand choisir une Mesure calculée
• Par contre, vous devez définir une mesure chaque fois
que vous souhaitez afficher la valeur d’un calcul selon
les choix de l'utilisateur et les afficher dans la zone des
valeurs d'un tableau croisé dynamique ou dans la zone
de tracé d'un graphique. Par exemple:
– Lorsque vous calculez le pourcentage de profit sur
une sélection de données.
– Lorsque vous calculez les ratios d'un produit par
rapport à tous les produits tout en conservant le
filtre par année et par région.
21. Qu'est-ce que le contexte de filtre ?
• Le contexte de filtre est l'ensemble des filtres appliqués au
modèle de données avant le début de l'évaluation d'une
expression DAX.
• Lorsque vous utilisez une mesure dans un tableau croisé
dynamique, par exemple, elle produit des résultats différents pour
chaque cellule, car la même expression est évaluée sur un sous-
ensemble différent des données.
• Nous définissons simplement comme «contexte de filtre»
l'ensemble des filtres appliqués à l'évaluation d'une expression
DAX - généralement une mesure - quelle que soit la manière dont
ils ont été générés.
22. Contexte de filtre
• Prenons une mesure simple comme:
Ventes Totales =
sum(FactInternetSales[SalesAmou
nt])
• Elle retourne la somme des ventes
de toute la table Ventes, en
l’absence de filtres:
• Elle retourne une valeur différente si
l’on ajoute un filtre sur l’année dans
le rapport:
23. CALCULATE et Contexte de filtre
• La fonction CALCULATE permet d’évaluer n’importe
quelle fonction DAX dans un contexte de filtres
particuliers. On définit simplement une mesure et on
spécifie ensuite les filtres qui doivent être appliqués à
cette mesure.
• La fonction CALCULATE fait, plus précisément, ce qui
suit:
– Modifie le contexte de filtres en utilisant des filtres
placés comme arguments dans la fonction;
– Si placée dans un contexte de lignes, déplace le
contexte de lignes en contexte de filtres;
– Évalue l’expression dans le nouveau contexte modifié.
24. CALCULATE
Pourquoi Calculate?
– Appliquer un filtre sur une expression
– Ratios / Pourcentage du total
Syntaxe
– CALCULATE(<expression>,<filtre1>,<filtre2>…)
• L'expression est un agrégat
• Les filtres ajoutent ou remplacent le
contexte de filtre
ResellerSales = CALCULATE([TotalSales];
Store[StoreType]="Reseller")
AllProductSales = CALCULATE([TotalSales]; ALL(Product))
25. ALL
=ALL({<table> | <colonne>[;
<colonne>[; <colonne>[,...]]]} )
• La fonction ALL permet de récupérer
dans une fonction filtre l’ensemble
des données d’une table ou d’une
colonne et d’annuler les filtres en
cours en faisant abstraction au
moment du calcul.
26. ALLEXCEPT
=ALLEXCEPT({<table>; <colonne 1>[; <colonne 2>[,...]]]} )
• La fonction enlève tous les filtres de la table, à l’exception
de ceux représentés par les colonnes <colonne 1>, etc.
27. ▪ DAX, le langage des fonctions de Power BI pour
optimiser vos modèles de données
▪ Maîtriser Power BI 1
▪ Maîtriser Power BI 2
▪ Création d’un tableau de bord avec Power BI
▪ Gestion de Power BI pour administrateur et super
utilisateur
Formations offertes