Accéder au contenu principal

Comment utiliser les fonctions SUMX de Power BI

Découvrez la fonction SUMX dans Power BI, sa syntaxe, son fonctionnement et les meilleures pratiques à garder à l'esprit.
Actualisé 14 nov. 2024  · 8 min de lecture

Si vous venez de commencer à apprendre Power BI avec notre cursus professionnel Data Analyst in Power BI, vous connaissez peut-être déjà la fonction SUM de base grâce au cours d'introduction à DAX (si ce n'est pas le cas, consultez ce tutoriel DAX rapide). Dans ce cas, vous vous demandez peut-être ce qu'est la fonction SUMX, comment elle fonctionne et comment vous pouvez l'utiliser dans vos analyses.

Ce tutoriel va explorer la fonction SUMX, répondre à toutes ces questions et vous guider dans sa mise en œuvre dans Power BI.

En parcourant ce tutoriel et d'autres tutoriels sur Power BI, n'oubliez pas que même si vous n'êtes pas obligé d'apprendre la programmation en tant que développeur de business intelligence ou de Power BI, cela pourrait être un atout majeur pour votre carrière. Consultez notre article sur l'opportunité d'apprendre le code en tant qu'analyste BI pour savoir pourquoi.

Maîtriser Power BI de A à Z

Aucune expérience n'est requise - apprenez à travailler avec des données via Power BI.
Commencez À Apprendre Gratuitement

Qu'est-ce que la fonction SUMX dans Power BI ?

La fonction SUMX dans Power BI est une puissante fonction DAX utilisée pour calculer la somme d'une expression calculée pour chaque ligne d'un tableau. Cette fonction est importante car elle permet des calculs plus complexes qu'une simple somme.

Gardez à portée de main notre aide-mémoire DAX pour une référence rapide sur les fonctions DAX les plus utiles que vous rencontrerez.

image2.png

La syntaxe de la fonction SUMX est la suivante

SUMX(Table, Expression)

  • Tableau : Le tableau ou l'expression du tableau sur lequel la fonction itère.
  • Expression : L'expression qui est évaluée pour chaque ligne du tableau. Cette expression implique souvent des données provenant des tableaux.

SUMX est particulièrement utile lorsque vous devez effectuer des calculs qui dépendent de valeurs de lignes individuelles avant d'additionner les résultats. Par exemple, calculer les ventes totales en multipliant la quantité et le prix pour chaque transaction ou appliquer différents taux de remise par produit avant d'additionner le total des ventes remises. Elle offre souplesse et précision dans vos calculs, ce qui en fait une fonction importante à connaître.

Comment fonctionne SUMX dans Power BI

Voici comment la fonction SUMX fonctionne sous le capot :

  • Lorsque SUMX est appelé, il parcourt une à une les lignes du tableau spécifié. Pour chaque ligne, il établit temporairement un contexte de ligne, qui est une sorte d'environnement dans lequel les valeurs de la ligne actuelle sont directement accessibles.
  • Dans ce contexte de ligne, la fonction évalue l'expression fournie dans son deuxième argument. L'expression implique généralement une ou plusieurs autres valeurs de colonne de la ligne actuelle. Au fur et à mesure que la fonction parcourt le tableau, elle recalcule cette expression pour chaque ligne en fonction des données qui s'y trouvent.
  • Au fur et à mesure que SUMX traite chaque ligne, il agrège les résultats, en conservant un total courant. Power BI utilise le moteur analytique en mémoire de DAX (VertiPaq), qui est optimisé pour des calculs comme celui-ci.
  • Après avoir itéré sur toutes les lignes, SUMX finalise le total agrégé, qui est la somme des résultats individuels calculés pour chaque ligne. Cette valeur finale est ensuite renvoyée en tant que sortie de la fonction.

Comprendre les contextes

Dans Power BI, le contexte est crucial pour comprendre le fonctionnement des fonctions DAX telles que SUMX. Le contexte détermine la manière dont les valeurs des modèles de données sont calculées et affichées. Consultez notre cours d'introduction à DAX, où nous abordons les contextes plus en détail. Avec la fonction SUMX, il y a deux principaux types de contexte à prendre en compte : le contexte de la ligne et le contexte du filtre.

Contexte de la ligne

Le contexte de ligne fait référence à l'environnement dans lequel les formules DAX évaluent chaque ligne d'un tableau. Lorsque vous êtes dans un contexte de ligne, vous pouvez faire directement référence aux colonnes du tableau et les formules DAX utiliseront la valeur de la ligne actuelle dans les calculs.

Lorsque vous utilisez SUMX, il crée et exploite le contexte de la ligne pour son fonctionnement. Pour chaque ligne du tableau spécifié, SUMX évalue l'expression donnée dans le contexte de cette ligne particulière.

Contexte du filtre

Le contexte du filtre est un ensemble de filtres appliqués aux données d'un rapport Power BI, tels que les filtres des visuels, des slicers et des filtres au niveau du rapport. Ce contexte détermine quels points de données sont pris en compte dans les calculs.

Bien que SUMX opère dans le contexte de la ligne pour ses calculs ligne par ligne, ces calculs sont toujours soumis au contexte global du filtre du rapport ou du visuel. Cela signifie que les lignes itérées par SUMX sont celles qui répondent aux critères définis par le contexte de filtrage actuel.

Interaction entre les contextes dans SUMX

Lorsque vous utilisez SUMX, la fonction respecte à la fois le contexte de la ligne et le contexte du filtre. Le tableau sur lequel SUMX itère est défini par le contexte du filtre, tandis que le calcul pour chaque ligne est effectué dans le contexte de la ligne.

Vous pouvez utiliser une mesure dans SUMX. Dans ce cas, une transition de contexte se produit, où le contexte de la ligne est temporairement transformé en un contexte de filtre équivalent afin d'évaluer la mesure pour chaque ligne.

Meilleures pratiques SUMX

Lorsque vous utilisez la fonction SUMX dans Power BI, tenez compte de quelques-unes de ces bonnes pratiques :

  • Assurez-vous que votre modèle de données est bien structuré avant d'appliquer SUMX. Des relations et un schéma de modèle correctement définis sont essentiels pour obtenir des rapports Power BI précis et optimisés.
  • SUMX n'est pas pris en charge en mode DirectQuery lorsqu'il est utilisé dans des colonnes calculées ou des règles de sécurité au niveau des lignes.
  • Veillez à ce que les expressions utilisées dans SUMX soient aussi simples et efficaces que possible. Évitez les calculs trop complexes qui ralentissent les performances, en particulier pour les grands ensembles de données.
  • Soyez attentif à la transition contextuelle et à la manière dont elle peut affecter les résultats de votre fonction.
  • SUMX ne prend en compte que les nombres. Les blancs, les valeurs logiques et le texte sont ignorés.

SUMX par rapport à d'autres fonctions

Certaines fonctions sont similaires à SUMX, et il peut être difficile de savoir quelle fonction utiliser et à quel moment. Décortiquons les deux fonctions qui prêtent le plus à confusion.

SUMX vs SUM

SUM est utilisé pour calculer la somme d'une colonne dans un tableau et a la syntaxe suivante :

SUM(Column)

SUMX itère sur chaque ligne pour évaluer une expression, tandis que SUM agrège directement les valeurs d'une seule colonne. Cela signifie que SUMX peut traiter des calculs plus complexes impliquant plusieurs colonnes.

Cependant, la nature itérative de SUMX le rend plus gourmand en ressources que SUM, en particulier pour les grands ensembles de données. Souvenez-vous-en si vous travaillez avec un modèle de données volumineux, et contentez-vous de SUM pour les sommations simples.

SUMX vs CALCULER

CALCULATE modifie le contexte du filtre sur un calcul et est l'une des fonctions les plus puissantes de DAX. Voici la syntaxe de la fonction CALCULER :

CALCULATE(Expression, Filter1, Filter2,...)

CALCULER est idéal pour les scénarios dans lesquels vous devez effectuer des calculs dans des conditions de filtrage différentes de celles qui sont actuellement appliquées au rapport ou au modèle. En revanche, SUMX permet d'effectuer des calculs au niveau des lignes, suivis d'une agrégation.

Dans les scénarios complexes, nous pouvons utiliser CALCULER avec d'autres fonctions, comme SUMX. Par exemple, vous pouvez utiliser CALCULATE pour définir un contexte de filtre spécifique dans lequel SUMX effectue ses calculs et agrégations au niveau des lignes.

Mise en œuvre de SUMX dans Power BI : Guide étape par étape

À l'aide de l'échantillon de données Power BI (disponible lorsque vous installez Power BI Desktop), nous allons montrer comment utiliser la fonction SUMX et comment combiner SUMX avec d'autres fonctions DAX utiles.

Voici un aperçu de nos données montrant les ventes mensuelles de différents produits dans divers segments et pays.

image4.png

Étape 1 : Création d'une mesure à l'aide de SUMX

Voici un exemple classique de la puissance de SUMX. Nous voulons utiliser le nombre d'unités vendues, le prix par unité et la valeur des remises accordées pour calculer la valeur totale des ventes.

SUMX(Sales, (Sales[Units Sold] * Sales[Sale Price])-Sales[Discounts])

Voici un tableau montrant le résultat de notre fonction SUMX. Comme vous pouvez le voir, les ventes totales peuvent également être filtrées - dans ce cas, nous filtrons par année et par produit.

image1.png

Étape 2 : Appliquer des filtres à SUMX

Nous pouvons utiliser des filtres avec la fonction SUMX de deux manières : avec FILTER ou CALCULATE.

FILTER est utilisé pour appliquer des filtres spécifiques à un tableau ou à une expression dans SUMX. Il permet un contrôle plus granulaire des lignes sur lesquelles SUMX itère.

SUMX(FILTER(Sales, Sales[Discount Band] = "High"), Sales[Units Sold])

CALCULATE modifie le contexte de filtrage de la fonction SUMX, ce qui permet de réaliser des agrégations conditionnelles complexes.

SUMX(Sales, CALCULATE(SUM(Sales[Units Sold]), Sales[Year] = 2020))

Étape 3 : Combinaison de SUMX avec d'autres fonctions

ALL et ALLEXCEPT

Ces fonctions sont utilisées pour supprimer les filtres d'un tableau ou de tous les tableaux à l'exception des tableaux spécifiés. Ils sont souvent utilisés dans CALCULATE et en combinaison avec SUMX pour effectuer des calculs sur un ensemble de données non filtrées.

SUMX(ALL(Sales), Sales[Sale Price] * Sales[Units Sold])

VALEURS

VALUES renvoie un tableau à une colonne contenant les valeurs uniques d'une colonne. Vous pouvez le combiner avec SUMX pour les calculs qui nécessitent d'itérer sur des valeurs uniques.

SUMX(VALUES(Sales[Country]), [Total Sales])

AVERAGEX, MINX et MAXX

Il s'agit d'autres fonctions itératives similaires à SUMX, mais utilisées pour calculer les valeurs moyennes, minimales ou maximales, respectivement. Ils peuvent être imbriqués ou utilisés en même temps que SUMX.

AVERAGEX(Customers, SUMX(RELATEDTABLE(Sales), Sales[Units Sold]))

IF et SWITCH

Les fonctions logiques telles que IF et SWITCH peuvent être utilisées dans SUMX pour effectuer des calculs conditionnels.

SUMX(Sales, IF(Sales[Country] = "Mexico", Sales[Units Sold], 0))

RELATION D'UTILISATION

USERELATIONSHIP spécifie une relation particulière à utiliser dans un calcul. Elle est particulièrement utile lorsqu'il existe plusieurs relations entre les tableaux.

SUMX(CALCULATETABLE(Sales, USERELATIONSHIP(Date[Date], Sales[Date])), Sales[Units Sold])

Conclusion

Dans ce tutoriel, nous avons creusé les détails de la fonction SUMX dans Power BI et vous avons montré comment la mettre en œuvre vous-même. Il s'agit non seulement d'une fonction DAX flexible et puissante, mais aussi d'une démonstration de l'importance de la compréhension des contextes dans DAX. Pour en savoir plus, consultez notre cursus de compétences sur les fondamentaux de Power BI.

Devenez un analyste de données Power BI

Maîtrisez l'outil de veille stratégique le plus populaire au monde.

Commencez À Apprendre Gratuitement

Photo of Joleen Bothma
Author
Joleen Bothma
LinkedIn
Sujets

Commencez votre voyage Power BI dès aujourd'hui !

Certification disponible

cours

Introduction à Power BI

4 hr
407.8K
Maîtrisez les bases de Power BI et apprenez à utiliser le logiciel de visualisation de données pour construire des rapports percutants.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow