Support formation Rapports Power BI

Groupes de calcul

Créer un groupe Time intelligence dans Power BI Desktop ; appliquer une chaîne de format dynamique à un élément de calcul ; utiliser un élément de calcul dans un visuel et dans une mesure.

Pourquoi ?

Un groupe de calcul réduit le nombre de mesures d'un modèle. Pour le montant des ventes, on crée souvent quatre mesures :

  • l'année en cours (CY) ;
  • l'année précédente (LY) ;
  • l'évolution d'une année sur l'autre (YoY) ;
  • cette évolution en pourcentage (% YoY).

Il faut les répéter pour chaque indicateur : quantités, nombre de ventes, marge, achats. Avec quatre indicateurs, on obtient seize mesures. Un groupe de calcul définit ces quatre calculs une seule fois, sans préciser la mesure à laquelle ils s'appliquent, grâce à la fonction SELECTEDMEASURE. Dans le visuel, vous combinez ensuite les éléments de calcul avec n'importe quelle mesure.

image.png

Notions clés

  • Un groupe de calcul apparaît comme une table avec une colonne (le nom du groupe de calcul) dont chaque valeur est un élément de calcul.
  • Chaque élément de calcul est une expression DAX dans laquelle SELECTEDMEASURE() est remplacée par la mesure placée dans le visuel.
  • Les éléments de calcul ne s'appliquent qu'aux mesures explicites. À la création du premier groupe, Power BI demande d'activer la propriété Décourager les mesures implicites du modèle.
  • Chaque élément peut avoir sa propre chaîne de format dynamique (pourcentage pour % YoY).
  • Si plusieurs groupes de calcul s'appliquent à la même mesure, la propriété Priorité fixe leur ordre d'application.

Fichier de départ

Téléchargez et décompressez ce projet Power BI (PBIP), puis ouvrez le fichier GroupesCalcul_Depart.pbip dans Power BI Desktop. Le modèle contient une table de dates Date (2024 et 2025) et quatre mesures explicites : CA HT, Quantités, Nb ventes et Panier moyen. Aucun groupe de calcul n'existe encore. Dans ce fichier, le champ d'année est Année et la mesure à utiliser à l'étape 7 est CA HT.

Pas à pas

1. Dans la vue Modèle, cliquez sur Groupe de calcul dans le ruban. Vous pouvez aussi, dans l'onglet Modèle du volet Données, faire un clic droit sur Groupes de calcul > Nouveau groupe de calcul.

2. Si Power BI le propose, acceptez d'activer Décourager les mesures implicites.

3. Renommez le groupe en Time intelligence et sa colonne en Calcul.

[Capture : onglet Modèle du volet Données, groupe de calcul Time intelligence développé avec sa colonne Calcul et ses éléments de calcul]

4. Le premier élément de calcul contient SELECTEDMEASURE(). Renommez-le CY (année en cours) : il renvoie la mesure telle quelle.

5. Clic droit sur Éléments de calcul > Nouvel élément de calcul, puis créez les trois autres éléments :

LY =
CALCULATE ( SELECTEDMEASURE (), DATEADD ( 'Date'[Date], -1, YEAR ) )
YoY =
VAR varC = SELECTEDMEASURE ()
VAR varL = CALCULATE ( SELECTEDMEASURE (), DATEADD ( 'Date'[Date], -1, YEAR ) )
RETURN
    varC - varL
% YoY =
VAR varC = SELECTEDMEASURE ()
VAR varL = CALCULATE ( SELECTEDMEASURE (), DATEADD ( 'Date'[Date], -1, YEAR ) )
RETURN
    DIVIDE ( varC - varL, varL )

6. Sélectionnez l'élément % YoY, activez Chaîne de format dynamique dans le volet Propriétés, puis saisissez le format "0.0%".

[Capture : volet Propriétés de l'élément de calcul % YoY, option Chaîne de format dynamique activée et expression "0.0%" dans la barre de formule]

7. Dans la vue Rapport, créez une matrice : un champ d'année en lignes (ici Calendar Year), une mesure en valeurs (ici Sales Amount) et la colonne Calcul du groupe Time intelligence en colonnes.

image.png
image.png

Un segment sur la colonne Calcul applique l'élément choisi à toutes les mesures de la page.

Exemple

Appeler un élément de calcul dans une mesure

Un élément de calcul peut servir de filtre dans CALCULATE :

CA % YoY =
CALCULATE ( [CA HT], 'Time intelligence'[Calcul] = "% YoY" )

Créer le groupe dans la vue TMDL

Le même groupe peut être écrit, copié d'un fichier à l'autre ou corrigé dans la vue TMDL (page Vue TMDL). La structure générée par Power BI Desktop est la suivante :

createOrReplace

    table 'Time intelligence'

        calculationGroup
            precedence: 1

            calculationItem CY = SELECTEDMEASURE()

        column Calcul
            dataType: string
            summarizeBy: none
            sourceColumn: Name
            sortByColumn: Ordinal

        column Ordinal
            dataType: int64
            formatString: 0
            summarizeBy: sum
            sourceColumn: Ordinal

Pièges et bonnes pratiques

  • Dès qu'un groupe de calcul existe, les mesures du modèle utilisent le type de données variant : une mesure de texte (titre dynamique) peut provoquer une erreur si un élément applique une opération mathématique. Protégez l'élément avec
    IF ( ISNUMERIC ( SELECTEDMEASURE () ), ... ).
  • Les mesures implicites (glisser une colonne numérique dans un visuel) ne sont plus utilisables : créez des mesures explicites pour tous les indicateurs.
  • Définissez des expressions de sélection pour contrôler le résultat quand l'utilisateur sélectionne plusieurs éléments, ou aucun.
  • Les calculs visuels (sous-partie DAX) répondent à certains besoins proches, mais au niveau d'un seul visuel.

À retenir

  • Un groupe de calcul factorise un calcul applicable à toutes les mesures grâce à SELECTEDMEASURE.
  • Il se crée dans la vue Modèle de Power BI Desktop, sans outil externe.
  • Il impose des mesures explicites.
  • Chaque élément peut avoir son propre format dynamique.

Corrigé

Le projet corrigé contient le groupe Time intelligence (CY, LY, YoY, % YoY avec le format "0.0%"), les matrices Année × Calcul, le segment sur Calcul et la mesure CA % YoY. Ouvrez le fichier GroupesCalcul_Corrige.pbip après avoir fait l'exercice.

Pour aller plus loin

  • Créer des groupes de calcul. Source (Microsoft Learn)
  • Groupes de calcul dans les modèles tabulaires Analysis Services. Source (Microsoft Learn)
  • Fonction SELECTEDMEASURE. Source (Microsoft Learn)