Voici l'un des casse-têtes les plus épuisants pour tout développeur Power BI en entreprise.
Imaginez que vous deviez suivre 6 indicateurs métiers :
- Chiffre d'Affaires
- Marge Brute
- Volume Vendu
- Coût d'Achat
- Budget Prévisionnel
- Nombre de Commandes
Et pour chacun de ces 6 indicateurs, la direction vous demande d'afficher 4 déclinaisons temporelles :
1. La valeur actuelle
2. Le cumul annuel (YTD)
3. La valeur de l'année précédente (N-1)
4. La croissance annuelle (YoY %)
En méthode classique, vous seriez condamné à créer 24 mesures DAX distinctes (Ventes YTD, Marge YTD, Coût YTD, Ventes N-1, Marge N-1...). Et si le métier vous demande d'ajouter le cumul mensuel (MTD), vous devez réécrire 6 mesures de plus !
C'est précisément pour éradiquer cette duplication que Microsoft a intégré nativement dans Power BI Desktop les Groupes de Calcul (Calculation Groups).
💡 Le Principe Révolutionnaire des Groupes de Calcul#
Un groupe de calcul est une table dimensionnelle spéciale qui ne contient pas de données physiques, mais des règles de transformation applicables à n'importe quelle mesure existante.
Il s'appuie sur une fonction magique : SELECTEDMEASURE().
┌────────────────────────────────────────────────────────┐
│ LE MÉCANISME DE SELECTEDMEASURE() │
│ 1. L'utilisateur glisse [Chiffre d'Affaires] │
│ 2. Le groupe de calcul intercepte la mesure │
│ 3. Il lui applique la formule temporelle : │
│ TOTALYTD(SELECTEDMEASURE(), Dim_Calendrier[Date]) │
│ 4. Si l'utilisateur remplace par [Marge Brute], │
│ la même formule calcule automatiquement la marge ! │
└────────────────────────────────────────────────────────┘
Une seule règle écrite une fois pour toutes s'applique instantanément à l'ensemble des mesures de votre modèle !
🛠️ Créer un Groupe de Calcul dans Power BI Desktop#
Depuis les versions récentes de Power BI Desktop, la création de groupes de calcul s'effectue directement dans l'interface sans nécessiter d'outils externes tiers :
- Rendez-vous dans la vue Modèle (l'icône de schéma relationnel à gauche).
- Dans le ruban supérieur, onglet Accueil, cliquez sur Groupe de calcul (ou faites un clic droit dans le volet Données > Nouveau groupe de calcul).
- Power BI crée une table spéciale avec une colonne par défaut. Renommez la table
Calculs Temporelset la colonnePériode.
📐 Définir les Éléments de Calcul (Calculation Items)#
Dans votre groupe de calcul Calculs Temporels, nous allons créer 4 éléments de calcul :
1. Élément Actuel#
Renvoie la mesure telle quelle, sans aucune altération :
2. Élément YTD (Cumul annuel)#
3. Élément N-1 (Année précédente)#
4. Élément YoY % (Croissance annuelle en %)#
VAR ValActuelle = SELECTEDMEASURE()
VAR ValPrecedente = CALCULATE(SELECTEDMEASURE(), SAMEPERIODLASTYEAR(Dim_Calendrier[Date]))
RETURN
DIVIDE(
ValActuelle - ValPrecedente,
ValPrecedente
)
🎨 Le Format Dynamique (Format String Expression)#
Voici un piège classique : si vous appliquez ce groupe de calcul à votre mesure [Montant Ventes], les trois premiers éléments (Actuel, YTD, N-1) doivent s'afficher en euros (€), mais le quatrième (YoY %) doit impérativement s'afficher en pourcentage (+12.4%) !
Power BI permet de spécifier une chaîne de format dynamique propre à chaque élément de calcul :
- Sélectionnez l'élément de calcul
YoY %. - Dans le volet des propriétés à droite, activez l'option Chaîne de format (Format String).
- Définissez la chaîne de format suivante :
Désormais, dès que YoY % est évalué, le résultat s'affiche automatiquement en pourcentage avec le signe positif ou négatif approprié !
📊 Utiliser le Groupe de Calcul dans vos Rapports#
Rendez-vous dans la vue Rapport :
- Insérez un visuel Matrice.
- En lignes : Placez vos catégories de produits (
Dim_Produits[NomCategorie]). - En colonnes : Glissez le champ
Périodede votre groupe de calculCalculs Temporels. - En valeurs : Déposez simplement votre mesure de base
[Montant Ventes].
Magie de Power BI : votre matrice déploie instantanément 4 colonnes (Actuel, YTD, N-1, YoY %) parfaitement calculées et formatées !
[!TIP] Vous pouvez également déposer le champ
Périodedans un filtre de rapport (Slicer). Vos utilisateurs pourront basculer l'intégralité d'un tableau de bord de la vue "Ventes Actuelles" à la vue "Cumul YTD" en un seul clic de bouton !
Vous maîtrisez désormais les techniques de modélisation les plus avancées du marché. Pour ancrer définitivement ces compétences, mettons-les en pratique dans un grand atelier d'application de modélisation et de calculs DAX de bout en bout !
Commentaires