Dans l’univers de Power BI, deux fonctions DAX posent souvent question aux utilisateurs : SUM et SUMX. Bien qu’elles semblent similaires au premier abord, leur fonctionnement diffère en profondeur. Et cette différence peut totalement changer les résultats de vos calculs.
Dans cet article, nous allons comparer SUM vs SUMX, expliquer quand utiliser l’une plutôt que l’autre, et illustrer cela avec des cas concrets. Si vous êtes analyste, développeur Power BI ou en formation DAX, cet article est fait pour vous.
SUM
: agrégation simpleLa fonction SUM()
permet de faire la somme d’une colonne. Elle est rapide et efficace, mais limite dès que l’on veut introduire une logique conditionnelle ou des calculs intermédiaires.
Exemple :
Total Ventes = SUM(FactVentes[Montant])
SUMX
: agrégation personnalisée ligne par ligneÀ l’inverse, SUMX()
est une fonction itérative : elle parcourt une table ligne par ligne, évalue une expression DAX pour chaque ligne, puis en somme les résultats.
Exemple :
Total Ventes Pondérées = SUMX(FactVentes, FactVentes[Prix] * FactVentes[Quantité])
Ici, on fait une multiplication personnalisée pour chaque ligne, ce que SUM
ne permet pas.
SUMX()
à la place de SUM()
?Lorsque vous avez besoin de faire des calculs sur plusieurs colonnes.
Quand vous souhaitez pondérer une somme (ex : pondérer les ventes par un coefficient).
Si vous devez intégrer des conditions logiques dans la mesure.
Dans les modèles complexes avec plusieurs tables liées.
Marge = SUMX(FactVentes, FactVentes[Montant] - FactVentes[Coût])
SUM()
ne peut pas faire cette soustraction ligne par ligne.
Score Pondéré = SUMX(FaitsScores, FaitsScores[Score] * FaitsScores[Pondération])
Indispensable pour des KPI basés sur des pondérations dynamiques.
Utiliser SUM()
au lieu de SUMX()
quand le calcul nécessite une expression DAX.
Oublier le bon contexte de filtre (ex. : calculs croisés entre tables).
Mauvaise compréhension de l’ordre d’évaluation dans les modèles DAX.
Une vidéo complète est disponible pour illustrer tout cela avec des démonstrations pratiques dans Power BI.