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...

sumx power bi dax tutorial français column card report expression function formula difference

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.

modèle de données tennis sumx dax power bi

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 :

sumx power bi dax tutorial français column card report expression function formula difference

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 :

sumx dax tutorial power bi anglais column table report expression fonction formule difference

et que nous voulons créer une mesure qui calcule le chiffre d’affaire total. Si vous vous demandez pourquoi nous avons créé une mesure et non une colonne calculée, je vous invite à lire cet article sur la différence entre les mesures et les colonnes calculées.

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 :

sumx dax tutorial power bi english column card report expression function formula difference message error

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 :

argument et expression de la table sumx dax

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.

sumx power bi dax tutorial français column card report expression function formula difference

Et elle va nous retourner la totalité de la somme :
sumx dax tutorial power bi card report expression function formula difference

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:

contexte de filtre de la table sumx dax

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 :

SUMX DAX ALL power bi sum turoriel contextes

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) :

sumx dax fonction DIVIDE pour calculer les pourcentages

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 :

table de filtrage sumx dax avec exemple de fonction FILTER

 

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!

Dominez Microsoft Power BI

Incrivez-vous à la Newsletter

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. […]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus d'articles

Power bi groupe de calcul article biist image en vedette
DAX

Que sont les Calculation Group dans 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.

Power BI desktop Microsoft Store
Power BI

INSTALLER POWER BI DEPUIS MICROSOFT STORE OU SÉPARÉMENT : FAITES LE BON CHOIX !

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.

Inscrivez-vous à la Newsletter Power BI

Nouveautés Power BI en français

Tutos, conseils & astuces.


-10%  sur les Formations Power BI

X