Ce blog est essentiellement destiné aux nouveaux utilisateurs et est destiné à vous donner un aperçu rapide et facile d'un langage de formule appelé Expressions d'analyse de données (DAX) .Si vous connaissez les fonctions de MS Excel ou , de nombreuses formules dans ce Principes de base de Power BI DAX l'article vous ressemblera.
Cela dit, voici les concepts, qui font partie intégrante de tout , après avoir appris ce que vous devez avoir une bonne compréhension des concepts les plus fondamentaux de DAX.
- Principes de base de Power BI DAX: qu'est-ce que DAX?
- Principes de base de Power BI DAX: comment ça marche?
- Principes de base de Power BI DAX: colonnes et mesures calculées
- Principes de base de Power BI DAX: types de fonctions dans DAX
- Principes de base de Power BI DAX: création de votre première mesure
Principes de base de Power BI DAX: qu'est-ce que DAX?
Alors, commençons par les bases de Power BI DAX, d'accord?
Il est assez facile de créer des rapports à l’aide de Power BI Desktop, qui afficheront des informations précieuses dès le départ.
Mais que se passe-t-il si vous devez analyser le pourcentage de croissance dans toutes les catégories de produits, pour toutes les différentes plages de dates? Ou vous avez besoin de calculer la croissance annuelle de votre entreprise par rapport aux géants du marché?
L'apprentissage de DAX vous aidera à tirer le meilleur parti de votre et résolvez de vrais problèmes commerciaux.
DAX comprend des fonctions, des opérateurs et des constantes qui peuvent être mis sous forme de formules pour calculer des valeurs à l'aide de données déjà présentes dans votre modèle.
Power BI DAX comprend une bibliothèque de plus de 200 fonctions, opérateurs et constructions. Sa bibliothèque offre une immense flexibilité dans la création de mesures pour calculer les résultats pour à peu près tous les besoins d'analyse de données.
Principes de base de Power BI DAX: comment ça marche?
Tout d'abord, laissez-moi vous expliquer comment cela fonctionne.Nous allons, pour la plupart, encadrer notre compréhension de Power BI DAX autour de trois concepts fondamentaux: Syntaxe , Le contexte , et Les fonctions .
Bien sûr, il y a d'autres concepts importants ici, mais leur compréhension vous fournira la meilleure base sur laquelle vous allez développer vos compétences.
Syntaxe
La Syntaxe comprend divers composants qui composent une formule et comment elle est écrite. LRegardez cette formule DAX simple.
Lorsque vous essayez de comprendre une formule DAX, il est souvent utile de décomposer chacun des éléments dans une langue que vous pensez et parlez tous les jours. Ainsi, cette formule comprend les éléments de syntaxe suivants:
JE. Ventes totales est le nom de la mesure.
II. La opérateur de signe égal (=) indique le début de la formule.
III. SOMME additionne tous les nombres de la colonne, Ventes [SalesAmount] .
IV. Il y a ces parenthèses () qui entourent une expression contenant un ou plusieurs arguments. Toutes les fonctions nécessitent au moins un argument.
V. Ventes est la table référencée.
NOUS. Une argument passe une valeur à une fonction. La colonne référencée [Montant des ventes] est un argument avec lequel, la fonction SOMME connaît la colonne sur laquelle elle doit agréger une SOMME.
En termes simples, vous pouvez le lire comme suit: ' Pour la mesure nommée Total Sales, calculez (=) la somme des valeurs de la colonne [SalesAmount] de la table Sales. »
&piquesL'éditeur Power BI DAX comprend une fonctionnalité de suggestions, qui vous aide à créer des formules syntaxiquement correctes en vous suggérant les bons éléments.
Le contexte
Le contexte est l'un des trois concepts DAX les plus importants. Quand on parle de contexte, cela peut renvoyer à l'un des deux types Contexte de ligne et Contexte du filtre .
Utilisé principalement en parlant de Les mesures , la Contexte de ligne est le plus facilement considérée comme la ligne actuelle. Il s'applique chaque fois qu'une formule a une fonction qui applique des filtres pour identifier une seule ligne dans une table.
Filtre-Contexte est un peu plus difficile à comprendre que le Row-Context. Vous pouvez le plus facilement considérer le contexte de filtre comme un ou plusieurs filtres appliqués dans un calcul. LaLe contexte de filtre n’existe pas à la place du contexte de ligne. Il s’applique plutôt en plus du premier. Regardez la formule DAX suivante.
Cette formule comprend les éléments de syntaxe suivants:
JE. Le nom de la mesure Ventes en magasin .
II. La opérateur de signe égal (=) indique le début de la formule.
III. La CALCULER function évalue une expression, en tant qu'argument.
IV. Parenthèse () entoure une expression contenant un ou plusieurs arguments.
V. Une mesure [Ventes totales] dans le même tableau qu'une expression.
NOUS. À virgule (,) sépare le premier argument d'expression de l'argument de filtre.
VIENS-TU. La colonne référencée entièrement qualifiée, Chaîne [ChannelName] est notre Row-Context. Chaque ligne de cette colonne spécifie un canal, un magasin, en ligne, etc.
VIII. La valeur particulière, Boutique est utilisé comme filtre. Ceci est notre contexte de filtre.
Cette formule assure cette la mesure des ventes totales est calculée uniquement pour les lignes de la colonne Channel [ChannelName] avec la valeur «Store», comme filtre.
Les fonctions
Les fonctions sont des formules prédéfinies, structurées et ordonnées. Ils effectuent des calculs en utilisant arguments transmis à eux. Ces arguments peuvent être des nombres, du texte, des valeurs logiques ou d'autres fonctions.
Principes de base de Power BI DAX: Colonnes et mesures calculées
Dans ce blog, nous allons nous concentrer sur les formules Power BI DAX utilisées dans les calculs, dans Les mesures et Colonnes calculées .
Colonnes calculées
Lorsque vous créez un modèle de données sur le bureau Power BI, vous pouvez étendre une table en créant de nouvelles colonnes. Le contenu des colonnes est défini par une expression DAX, évaluée ligne par ligne ou dans le contexte de la ligne actuelle dans cette table.
Dans les modèles de données pour DAX, cependant, toutes les colonnes calculées occupent de l'espace en mémoire et sont calculées pendant le traitement de la table.
Ce comportement est utile pour améliorer l'expérience utilisateur, mais il utilise une mémoire RAM précieuse et constitue donc une mauvaise habitude en production car chaque calcul intermédiaire est stocké dans la RAM et gaspille un espace précieux.
Les mesures
Il existe une autre façon de définir des calculs dans un modèle DAX, utile si vous devez opérer sur des valeurs d'agrégation plutôt que sur une base ligne par ligne. Ces calculs sont des mesures. L'une des exigences de DAX est qu'une mesure doit être définie dans un tableau. Cependant, la mesure n'appartient pas vraiment au tableau. Ainsi, vous pouvez déplacer une mesure d'une table à une autre sans perdre sa fonctionnalité.
Colonnes calculées vs mesures
Les mesures et les colonnes calculées utilisent toutes deux des expressions DAX. La différence réside dans le contexte de l'évaluation. Une mesure est évaluée dans le contexte de la cellule évaluée dans un rapport ou dans une requête DAX, tandis qu'une colonne calculée est calculée au niveau de la ligne dans la table à laquelle elle appartient.
Même si elles se ressemblent, il existe une grande différence entre les colonnes calculées et les mesures. La valeur d'une colonne calculée est calculée lors d'une actualisation des données et utilise la ligne actuelle comme contexte, elle ne dépend pas de l'interaction de l'utilisateur dans le rapport.
Par conséquent, vous devez définir une colonne calculée chaque fois que vous souhaitez effectuer les opérations suivantes
- Placez les résultats calculés dans un segment, ou affichez les résultats dans des lignes ou des colonnes dans un tableau croisé dynamique (par opposition à la zone de valeurs), 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 actuelle. Par exemple, Prix * Quantité ne peut pas fonctionner sur une moyenne ou sur une somme des deux colonnes.
- Catégorisez le texte ou les nombres. Par exemple, une plage de valeurs pour une mesure.
Une mesure fonctionne sur des agrégations de données définies par le contexte actuel, qui dépend du filtre appliqué dans le rapport, comme la sélection de segments, de lignes et de colonnes dans un tableau croisé dynamique, ou d'axes et de filtres appliqués à un graphique.
Par conséquent, vous devez définir une mesure chaque fois que vous souhaitez afficher les valeurs de calcul résultantes qui reflètent les sélections de l'utilisateur, telles que
- Lorsque vous calculez le pourcentage de profit sur une certaine sélection de données.
- Lorsque vous calculez les ratios d'un produit par rapport à tous les produits, mais en conservant le filtre à la fois par année et par région.
Principes de base de Power BI DAX: Types de fonctions dans DAX
1. Fonctions d'agrégation
MIN
Cette fonction DAX ret renvoie la valeur numérique minimale dans une colonne ou entre deux expressions scalaires.
Syntaxe
MIN()
Exemple
=MIN([ResellerMargin])
MINA
Cette fonction DAX ret renvoie la valeur minimale dans une colonne, y compris les valeurs logiques et les nombres représentés sous forme de texte.
Syntaxe
MINA()
Exemple
=MINA(([Code postal])
FRIPONNE
Cette fonction DAX renvoiela valeur numérique minimale qui résulte de l'évaluation d'une expression pour chaque ligne d'une table.
Syntaxe
Exemple Cette fonction DAX ret renvoie la valeur maximale dans une colonne, y compris les valeurs logiques et les nombres représentés sous forme de texte. Syntaxe Exemple Cette fonction DAX ret renvoie la valeur maximale dans une colonne, y compris les valeurs logiques et les nombres représentés sous forme de texte. Syntaxe Exemple Cette fonction DAX renvoiela valeur numérique maximale qui résulte de l'évaluation d'une expression pour chaque ligne d'une table. Syntaxe Exemple Cette fonction DAX adds tous les nombres d'une colonne. Syntaxe Exemple Cette fonction DAX ret renvoie la moyenne arithmétique des valeurs d'une colonne. Syntaxe Exemple Cette fonction DAX ret renvoie la somme d'une expression évaluée pour chaque ligne d'une table. Syntaxe Exemple Cette fonction DAX ccalcule la moyenne arithmétique d'un ensemble d'expressions évalué sur une table. Syntaxe Exemple Il s'agit d'une fonction DAX utilisée pour renvoyer le nombre distinct d'éléments dans une colonne. Donc, s'il y a plusieurs numéros du même élément, cette fonction le comptera comme un seul élément. Syntaxe Exemple Il s'agit d'une fonction DAX utilisée pour renvoyer le nombre d'éléments dans une colonne. Donc, s'il y a plusieurs numéros du même élément, cette fonction le comptera comme des éléments séparés et non comme un seul élément. Syntaxe Exemples Il s'agit d'une fonction DAX utilisée pour renvoyer le nombre d'éléments, dans une colonne, qui n'est pas vide. Syntaxe Exemple Il s'agit d'une fonction DAX quicompte le nombre de lignes dans la table spécifiée ou dans une table définie par une expression. Syntaxe Exemple Il s'agit d'une fonction DAX quicompte le nombre de cellules vides dans une colonne. Syntaxe Exemple Cette fonction DAX ret renvoie la date spécifiée au format Date-Heure. Syntaxe Exemple Cette fonction DAX ret renvoie l'heure spécifiée sous la forme d'un nombre compris entre 0 et 23 (12h00 à 23h00). Syntaxe Exemple Cette fonction DAX ret renvoie la date actuelle. Syntaxe Cette fonction DAX ret renvoie la date et l'heure actuelles au format Date-Heure. Syntaxe Cette fonction DAX ret renvoie la date au format Date-Heure du dernier jour du mois, avant ou après un nombre de mois spécifié. Syntaxe Exemple Cette fonction DAX ret renvoie la valeur absolue du nombre donné. Syntaxe Exemple Cette fonction DAX ret renvoie la valeur de e élevée à la puissance du nombre donné. Syntaxe Exemple Cette fonction DAX ret renvoie la factorielle d'un nombre. Syntaxe Exemple Cette fonction DAX ret renvoie le logarithme naturel du nombre donné. Syntaxe Exemple Cette fonction DAX ret renvoie le journal avec la base du nombre donné. Syntaxe Exemple Cette fonction DAX ret renvoie la valeur de Pi. Syntaxe Cette fonction DAX ret renvoie la valeur du premier argument élevé à la puissance du second argument. Syntaxe Exemple Cette fonction DAX effectue la division ret renvoie la partie entière du quotient. Syntaxe Exemple Cette fonction DAX renvoie le signe d'un nombre donné. Syntaxe Exemple Cette fonction DAX ret renvoie la racine carrée du nombre donné. Syntaxe Exemple Cette fonction DAX effectue un ET logique (conjonction) sur deux expressions. Pour que AND renvoie true, les deux conditions spécifiées doivent être remplies. Syntaxe Exemple Cette fonction DAX effectue un OU logique (disjonction) sur deux expressions. Pour que OR renvoie vrai, l'une des deux conditions spécifiées doit être remplie. Syntaxe Exemple Cette fonction DAX effectue un NON logique (négation) sur une expression donnée. Syntaxe Exemple Cette fonction DAX teste une série d'entrées pour celle qui remplit la condition spécifiée dans l'argument. Syntaxe Exemple Cette fonction DAX evalorise une expression et renvoie une valeur spécifiée si l'expression renvoie une erreur. Syntaxe Exemple Cette fonction DAXrenvoie TRUE ou FALSE aprèscvérifier si une valeur est vide. Syntaxe Exemple Cette fonction DAXrenvoie TRUE ou FALSE aprèscvérifier si une valeur est numérique. Syntaxe Exemple Cette fonction DAXrenvoie TRUE ou FALSE aprèscvérifier si une valeur est un texte. Syntaxe Exemple Cette fonction DAXrenvoie TRUE ou FALSE aprèscvérifier si une valeur n'est pas du texte. Syntaxe Exemple Cette fonction DAXrenvoie TRUE ou FALSE aprèscvérifier si une valeur est une erreur. Syntaxe Exemple Cette fonction DAX joins deux chaînes de texte en une seule. Syntaxe Exemple Cette fonction DAXle résultat d'une expression évaluée pour chaque ligne d'une table. Syntaxe Exemple Cette fonction DAX rrésonne un nombre au nombre de décimales spécifié et renvoie le résultat sous forme de texte. Syntaxe Exemple Cette fonction DAXremplace une partie d'une chaîne de texte, en fonction du nombre de caractères que vous spécifiez, par une chaîne de texte différente. Syntaxe Exemple Cette fonction DAX ret renvoie le nombre de caractères auquel une chaîne de texte spécifique est trouvée pour la première fois. Syntaxe Exemple Cette fonction DAX renvoieune chaîne de texte dans toutes les lettres majuscules. Syntaxe Exemple Prérequis: Vous devrez ouvrir ce fichier Power BI Desktop donné . Puisque je suppose que ce sera votre premier, je vais écrire ce peu en détail pour que vous puissiez suivre. Dans la liste des champs du Vue du rapport , faites un clic droit sur le Ventes tableau, suivi du Nouvelle mesure . Remplacer Mesure en tapant un nouveau nom de mesure Ventes du trimestre précédent, dans le Barre de formule . Dans cette formule, vous souhaitez utiliser le CALCULER fonction. Donc, après le signe égal, tapez les premières lettres CAL , puis double-cliquez sur la fonction que vous souhaitez utiliser. La fonction CALCULATE a au moins deux arguments. Le premier est l'expression à évaluer et le second est un Filtre . Après l'ouverture parenthèse ( pour le CALCULER fonction, type SOMME suivi d'une autre parenthèse ouvrante ( pour passer un argument au SOMME fonction. Commencez à taper Sel , puis sélectionnez Ventes [SalesAmount] , suivi d'une parenthèse fermante ) . C'est le premier argument d'expression pour notre CALCULER fonction. Type A virgule (,) suivi d'un espace pour spécifier le premier filtre, puis tapez QUARTIER PRÉCÉDENT . Ce sera notre filtre. Vous utiliserez le QUARTIER PRÉCÉDENT fonction d'intelligence temporelle pour filtrer SOMME résultats du trimestre précédent. Après la parenthèse ouvrante ( pour la fonction PREVIOUSQUARTER, tapez Calendrier [DateKey] . La QUARTIER PRÉCÉDENT function a un argument, une colonne contenant une plage de dates contiguë. Dans notre cas, c'est le DateKey colonne dans le tableau Calendrier. Assurez-vous que les arguments passés au PREVIOUSQUARTER et à la fonction CALCULATE sont fermés en tapant deux parenthèses fermées )) . Votre formule devrait maintenant ressembler à ceci Cliquez sur la coche dans la barre de formule ou appuyez sur Entrée pour valider la formule. Une fois que vous l'avez ajouté à votre modèle, le tour est joué! Vous venez de créer une mesure à l'aide de DAX, et ce n'est pas facile. Ce que fait cette formule est calculer le total des ventes du trimestre précédent, en fonction des filtres appliqués dans un rapport. Alors, si nous devions mettre Montant des ventes et notre nouveau Ventes du trimestre précédent mesurer dans un graphique, puis ajouté An et QuarterOfYear comme Trancheuses, nous obtiendrions quelque chose comme ce qui suit Maintenant que vous avez une compréhension de base des concepts dans Power BI DAX, vous pouvez commencer à créer vous-même des formules DAX pour les mesures. En effet, cela peut être un peu difficile à apprendre, maisDAX existe depuis plusieurs années etil existe de nombreuses ressources disponibles sur le Web. Après avoir lu ce blog et un peu d'expérimentation, vous pouvez apprendre à trouver des solutions métier via Power BI DAX.
FRIPONNE(
,)
=FRIPONNE(FILTRE(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Fret] + InternetSales [TaxAmt])
MAX
MAX()
=MAX([ResellerMargin])
MAX
MAX()
=MAX(([Code postal])
MAXX
MAXX(
,)
=MAXX(FILTRE(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Fret] + InternetSales [TaxAmt])
SOMME
SOMME()
=SOMME(Bureau de vente])
MOYENNE
MOYENNE()
=MOYENNE(InternetSales [ExtendedSalesAmount])
sumx
sumx(
,)
=sumx(FILTRE(InternetSales, InternetSales [SalesTerritoryID] =5),[Cargaison])
MOYENNEX
MOYENNEX(
,)
=MOYENNEX(InternetSales, InternetSales [Fret] + InternetSales [TaxAmt])
2. Fonctions de comptage
DISTINCTCOUNT
DISTINCTCOUNT()
=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
COMPTER
COMPTER()
=COMPTER([ShipDate])
COUNTA
COUNTA()
implémentation simple de hashmap en java
=COUNTA('Revendeur' [Téléphone])
COUNTROWS
COUNTROWS(
)
=COUNTROWS('Ordres')
COUNTBLANK
COUNTBLANK()
=COUNTBLANK(Revendeur [BankName])
3. Fonctions date-heure
DATE
DATE(<an>,<mois>,<journée>)
=DATE(2019,12, 17)
HEURE
HEURE()
=HEURE('Commandes' [TransactionTime])
AUJOURD'HUI
AUJOURD'HUI()
MAINTENANT
MAINTENANT()
EOMONTH
EOMONTH(,)
=EOMONTH(«3 mars 2008»,1,5)
4. Fonctions mathématiques
SECTION
SECTION()
=ABS ([DealerPrice] - [ListPrice])
EXP
EXP()
= EXP ([Puissance])
FAIT
FAIT()
= FAIT ([Valeurs])
LN
LN()
= LN ([Valeurs])
JOURNAL
JOURNAL(,)
Tous les éléments suivants renvoient le même résultat, 2.
= JOURNAL (100,dix)
= JOURNAL (100)
= LOG10 (100)
PI
PI()
PUISSANCE
PUISSANCE(,<Puissance>)
= PUISSANCE (5,2)
QUOTIENT
QUOTIENT(,)
= QUOTIENT (5,2)
SIGNE
SIGNE()
= SIGN (([Prix de vente] - [Prix de revient]))
SQRT
SQRT()
= SQRT (25)
5. Fonctions logiques
ET
ET(,)
= SI (ET (dix>9, -dix <-un),'Tout est vrai','Un ou plusieurs faux'
Étant donné que les deux conditions, passées en arguments, à la fonction AND sont vraies, la formule renvoie «All True».
OU
OU(,)
= SI (OU (dix>9, -dix> -un),'Vrai','Faux'
Étant donné que l'une des conditions, passées en arguments, à la fonction OR est vraie, la formule renvoie «True».
NE PAS
NE PAS()
= NOT ([CalculatedColumn1])
Pour chaque ligne dans Calculated Column1, la fonction NOT renvoie l'opposé logique de la valeur donnée.
SI
SI(test_logique> ,, valeur_si_faux)
= IF ([Appels]<200,'faible', IF ([Appels]<300,'moyen','haute'))
IFERREUR
IFERREUR(valeur, value_if_error)
= IFERREUR (25/0,9999)
6. Fonctions d'information
ISBLANK
ISBLANK(<valeur>)
= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
NOMBRE
NOMBRE(<valeur>)
= SI (ISNOMBRE (0),'Est un numéro','N'est pas un numéro')
ISTEXTE
ISTEXTE(<valeur>)
= SI (ISTEXTE ('texte'),'Est un texte','Est sans texte')
ISNONTEXT
ISNONTEXT(<valeur>)
= SI (ISNONTEXTE ('texte'),'Est sans texte','Est un texte')
ISERREUR
ISERROE(<valeur>)
= IF (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD]))
7. Fonctions de texte
ENCHAÎNER
ENCHAÎNER(,)
= CONCATENER ('Bonjour', 'Monde')
CONCATENATEX
CONCATENATEX(
,, [délimiteur])
= CONCATENATEX (Employés, [FirstName] & ““ & [LastName], “,”)
FIXÉ
FIXÉ(,,)
= FIXE ([PctCost],3,un)
REMPLACER
REMPLACER(,,,)
= REPLACE ('Nouveaux produits' [Code produit],un,2,«OB»)
CHERCHER
CHERCHER(, [, [] [,]])
= RECHERCHE ('n','imprimante')
La formule renvoie 4 car «n» est le quatrième caractère du mot «imprimante».
PLUS HAUT
PLUS HAUT()
= UPPER (['Nouveaux produits' [Code produit])
Principes de base de Power BI DAX: création de votre première mesure
que signifie ajouter en java
Ventes du trimestre précédent = CALCULATE (SUM (Sales [SalesAmount]), PREVIOUSQUARTER (Calendar [DateKey]))