Pourquoi et quand utiliser SUMX au lieu de SUM dans Power BI?
Quelle est la différence entre les fonctions DAX SUM et SUMX ? Il est temps de découvrir pourquoi une simple somme peut parfois être grisée et soulignée en rouge...
SUM et SUMX font partie des fonctions DAX les plus utilisées dans Power BI, mais la différence entre les deux peut prêter à confusion. Dans cet article, nous verrons les spécificités de chacune de ces fonctions et des exemples pratiques.
Partagez l’article
La fonction SUM somme (verticalement) les valeurs d’une colonne
La théorie de la fonctione SUM :
SUM est une fonction simple qui additionne tous les chiffres d’une colonne et, selon la documentation de Microsoft, elle a la syntaxe suivante:
SUM( < column > )
Rappel: Même si le DAX permet d’écrire le nom d’une colonne sans préciser à quelle table elle appartient, il est recommandé d’écrire également le nom de la table avant le nom de la colonne, de cette façon : Table[Columna]
Il est très important de comprendre la syntaxe de chaque fonction, surtout lorsqu’on travaille avec des fonctions plus complexes comme SUMX. Ici, cela signifie que SUM prend une colonne comme argument. Lorsque la syntaxe n’a pas d’argument qui demande dans quelle table on fait le calcul, c’est qu’une colonne ne peut appartenir qu’à une seule table.
La pratique de SUM:
Disons que nous avons un magasin qui vend des produits de tennis. Dans le tableau suivant se trouvent les informations correspondant à ces produits. Il contient une colonne Importe (= Montant) qui indique le chiffre d’affaires par produit. Note: exceptionnellement, cet exemple a été fait en espagnol puis traduit en français.
Nous devons calculer le montant totaldes ventes. Créons une mesure et pour calculer le chiffre d’affaire en DAX. Dans notre cas, comme nous avons déjà une colonne « Importe » qui calcule le montant pour chaque ligne, nous pouvons utiliser directement la fonction SUM :
Dans le seul argument de la fonction SUM, nous avons mis la colonne Importe. La mesure retourne la somme des montants. La mesure a fait un calcul vertical :
899.99
+ 299.98
+ 639.96
+ 174.99
+ 449.97
Supposons maintenant que nous n’ayons pas la colonne Importe (Montant) dans le modèle de données, mais que nous ayons les colonnes Quantité et Prix unitaire :
Le premier réflexe qu’on peut avoir ici est de calculer le chiffre d’affaire comme ceci : Quantité * Prix unitaireavec la fonction SUM. Et on se retrouve dans cette situation :
Cela ne fonctionne pas, la fonction SUM ne peut recevoir qu’une seule colonne. Alors qu’ici, nous lui avons donné une expression. De toute façon, quand vous voyez un mot en gris, c’est qu’Intellisense vous préviens que quelque chose ne va pas. DAX intellisense a toujours raison et vous aide à comprendre que la structure d’une expression est fausse.
Pour remédier à ce problème, nous pouvons utiliser la fonction DAX SUMX.
–
SUMX permet de sommer une expression DAX
La théorie de SUMX:
La fonction SUMX est un iterateur, c’est-à-dire qu’elle parcourt l’ensemble de la table, ligne par ligne: elle calcule une expression pour chaque ligne d’une table spécifiée (premier argument), stocke temporairement le résultat de chaque ligne, additionne tous ces résultats, libère la mémoire temporaire et renvoie le résultat (la somme des expressions). Un vrai marathon !
La syntaxe de SUMX est :SUMX(table , <expression>)
Dans DAX, le X de SUMX est pour eXpression. On le retrouve dans d’autres fonctions d’itération telles que AVERAGEX, CONCATENATEX, etc.
La fonction SUMX en pratique :
Dans le cas où le modèle ne comporte pas de colonne Importe (Montant), la solution serait de créer cette mesure avec SUMX :
Vous allez parcourir tout le tableau « Ventes de tennis », faire la multiplication dans la première ligne, la sauvegarder, l’ajouter à la somme de la deuxième ligne, etc.
Et elle va nous retourner la totalité de la somme :
L’avantage de SUMX en DAX
Théorie – avantage de SUMX dans le DAX :
Le premier argument peut recevoir n’importe quelle table. C’est-à-dire que nous pouvons lui passer n’importe quelle fonction qui renvoie une table. Cela nous permettra de faire des calculs plus intéressants car on va pouvoir contrôler le contexte des filtres.
En pratique – avantage de SUMX en DAX :
Quand on met la marque et le montant Importe (calculé avec SUMX) dans une table, on obtient ceci:
On voit que, parce qu’il existe un contexte de filtre, le résultat de Importe_medida_SUMX est filtré par chaque marque, ce qui est normal. Mais on pourrait ignorer ce filtre de marque en utilisant la fonction ALLdans le premier argument de la fonction SUMX. En effet, ALL renvoie une table avec toutes les lignes et ignore totalement le contexte du filtre.
La formule suivante nous donne le même résultat sur chaque ligne :
Quelle est l’utilité de cette formule ? Car de cette façon, nous pourrons calculer le pourcentage des ventes de chaque marque (c’est-à-dire laquelle participe le plus au montant total) :
Nous constatons que nous vendons 35% des raquettes Babolat alors que les raquettes Yonex ne vendent que 6,82% du total.
On aurait aussi pu utiliser la fonction FILTER comme premier argument de la fonction SUMX. Maintenant, supposons que je doive livrer un rapport à la marque Tecnifibre. Je peux calculer vos ventes en filtrant avec votre marque, comme ceci :
CONCLUSION – SUM ou SUMX en DAX, ça dépend !
Si ce que vous devez additionner est dans une seule colonne, SUM est votre ami car il fait la somme des valeurs qui sont dans une seule colonne, c’est un calcul vertical.
Si vous devez faire une somme qui nécessite 2 colonnes ou plus, SUMX vous sauvera la vie car SUMX additionne une expression. Elle permet scanner toute la table horizontalement, ligne par ligne. Au niveau des performances, SUMX consomme un peu plus parce qu’elle utilise une mémoire temporaire pendant qu’elle fait son travail.
Si vous avez des questions, vous pouvez laisser un commentaire ci-dessous. Êtes-vous à l’aise avec SUMX ? Avec quelle(s) autre(s) fonction(s) la combinez-vous ? Partagez avec nous l’utilisation des fonctions DAX SUM ou SUMX que vous utilisez dans vos rapports. Cela pourrait en aider plus d’un!
Découvrez nos formations Power BI
Nous vous aidons à structurer et compléter vos connaissances en DAX, Power Query, dataviz, relations, modélisation de données, administration et déploiement, certification DA-100 et plus encore pour maîtriser parfaitement Power BI!
[…] Sin embargo, cuando se trata de hacer cálculos avanzados, siempre necesitarás conocimientos de DAX. En este blog, encontrarás mis consejos sobre DAX como este artículo : Por qué y cuándo utilizar SUMX en lugar de SUM en Power BI. […]
Le groupe de calcul Power BI est une fonctionnalité aussi puissante qu’inconnue. Dans cet article, nous passons en revue ce qu’ils sont, comment les créer et comment les utiliser pour travailler plus efficacement ou faire des choses qui ne peuvent pas être faites autrement.
Ce tutoriel de BIIST Pro vous montre la procédure à suivre, étape par étape, pour télécharger et installer Microsoft Power BI Desktop à partir de Microsoft Store, d’une part, et depuis le centre de téléchargement de Microsoft d’autre part. Nous verrons également les différences fondamentales entre ces deux façons d’installer l’outil.
1 commentaire
Vista Diagrama Power BI: Visualizar La Preparación De Datos. | Biist Pro · octobre 15, 2021 à 17 h 40 min
[…] Sin embargo, cuando se trata de hacer cálculos avanzados, siempre necesitarás conocimientos de DAX. En este blog, encontrarás mis consejos sobre DAX como este artículo : Por qué y cuándo utilizar SUMX en lugar de SUM en Power BI. […]