Les chiffres que la direction regarde le lundi
Chiffre d'affaires, panier moyen, marge, part du total, évolution sur un an : chaque indicateur de Datashop devient une mesure, écrite une fois et juste dans tous les visuels, quel que soit le filtre. Cette séance écrit ces mesures — et retrouve, au centime, les chiffres de référence de l'entreprise.
Point de départ : le modèle Datashop de la séance 3 (six tables, le calendrier, les relations). Tu ne l'as pas ? Recharge datashop-modele.xlsx et refais les relations — dix minutes.
Dans le navigateur : Toutes licences les mesures se créent dans la vue de modèle (Mon espace de travail, … du modèle › Ouvrir le modèle sémantique), ruban Accueil › Nouvelle mesure. Depuis un rapport, Afficher le modèle sémantique y ramène : le rapport en ligne ne crée pas de mesure.
📗 Tu connais Excel ? Les équivalences de cette séance
| En DAX | ≈ En Excel | L'idée |
|---|---|---|
SUM() | SOMME() | Additionner une colonne |
CALCULATE(expr, filtre) | SOMME.SI.ENS() | Un calcul avec des critères |
DIVIDE(a, b) | SIERREUR(a/b ; 0) | Une division sans erreur ÷0 |
SUMX(table, a*b) | SOMMEPROD() | Calculer ligne par ligne, puis additionner |
RELATED() | RECHERCHEX() | Lire une colonne d'une table reliée |
Des analogies, pas des équivalences : une mesure DAX se recalcule selon les filtres de chaque visuel, ce qu'aucune formule Excel ne fait seule.
Colonne calculée ou mesure
La distinction la plus importante du DAX| Colonne calculée | Mesure | |
|---|---|---|
| Calculée | Au chargement, ligne par ligne | À l'affichage, selon les filtres du visuel |
| Stockée | Oui, elle alourdit le modèle | Non, rien n'est stocké |
| On la place | En axe, en légende, en segment | En valeur |
| Exemple Datashop | La tranche de prix d'un produit | Le chiffre d'affaires, le taux de marge |
On dit que la colonne calculée vit dans un contexte de ligne (elle voit la ligne en cours), et la mesure dans un contexte de filtre (elle voit ce que le visuel, les segments et les filtres ont retenu).
La règle de ce cours : tout ce qui s'additionne, se moyenne, se compte ou se compare est une mesure. Une colonne calculée seulement quand on a besoin de la valeur pour ranger les données (un axe, un segment).
Les premières mesures
SUM, COUNTROWS, DISTINCTCOUNT, DIVIDE- Dans la vue de modèle, sélectionne la table
Commandesdans le volet Données : c'est là qu'on range les mesures du cours. - Accueil › Nouvelle mesure, et écris dans la barre de formule :
CA brut = SUM(Commandes[Total_HT])
Nb commandes brut = COUNTROWS(Commandes)
Clients acheteurs = DISTINCTCOUNT(Commandes[ID_Client])
Panier brut = DIVIDE([CA brut], [Nb commandes brut])
Pose chacune dans une carte. Puis mets-les dans une table avec Commandes[Canal] : la même mesure donne un chiffre par canal, sans rien réécrire — c'est le contexte de filtre.
Pourquoi DIVIDE et pas / ? Sur un canal sans commande, [CA] / [Nb] renvoie une erreur qui casse le visuel. DIVIDE renvoie un vide, proprement. Une mesure appelle une autre mesure entre crochets, sans nom de table : [CA brut].
« Nos chiffres clés, sur les deux ans »
Donne à Camille le chiffre d'affaires, le nombre de commandes, le nombre de clients acheteurs et le panier moyen — avec ces quatre premières mesures.
Voir la solution
CALCULATE
Changer les filtres le temps d'un calculCALCULATE(expression, filtre1, filtre2…) évalue une expression après avoir ajouté ou remplacé des filtres. C'est la fonction la plus importante du DAX.
CA facturé = CALCULATE(SUM(Commandes[Total_HT]), Commandes[Statut] <> "Annulée")
Nb commandes = CALCULATE(COUNTROWS(Commandes), Commandes[Statut] <> "Annulée")
Panier moyen = DIVIDE([CA facturé], [Nb commandes])
CA télévente = CALCULATE([CA facturé], Commandes[Canal] = "Téléphone")
Le filtre de CALCULATE remplace celui du visuel sur la même colonne. Dans un tableau par canal, CA télévente affiche 82 086,00 € sur chaque ligne, y compris « Magasin » : le filtre Canal = "Téléphone" a écrasé celui de la ligne. C'est parfois voulu, parfois une erreur : il faut le savoir.
« Les vrais chiffres, cette fois »
Écris les trois mesures de référence et donne à nouveau le CA, le nombre de commandes et le panier moyen.
Voir la solution
SUMX, RELATED et la marge
Calculer ligne par ligne, puis additionnerLe coût d'une ligne vendue, c'est sa quantité multipliée par le coût d'achat du produit — qui est dans une autre table. SUMX parcourt les lignes une à une, RELATED va lire la colonne de la table reliée, côté « 1 ».
CA produits = CALCULATE(SUM(Lignes_commande[Total_ligne_HT]), Commandes[Statut] <> "Annulée")
Coût d'achat =
CALCULATE(
SUMX(Lignes_commande, Lignes_commande[Quantité] * RELATED(Produits[Coût_achat_HT])),
Commandes[Statut] <> "Annulée"
)
Marge = [CA produits] - [Coût d'achat]
Taux de marge = DIVIDE([Marge], [CA produits])
Passe Taux de marge au format pourcentage (Outils de mesure › Format › Pourcentage, une décimale).
Le piège de la moyenne des taux. Dans une matrice par catégorie, la ligne de total du taux de marge n'est pas la moyenne des sept taux affichés : la mesure recalcule Marge ÷ CA sur tout le périmètre. Heureusement : la moyenne simple des taux donne 48,6 %, alors que Datashop marge en réalité à 45,6 % — les Écrans, qui pèsent lourd, tirent le vrai taux vers le bas.
« Où gagnons-nous vraiment de l'argent ? »
Construis une matrice : Produits[Catégorie] en lignes, CA produits, Marge et Taux de marge en valeurs. Trie par CA.
Voir la solution
Des mesures qu'on peut relire
Nommer, formater, ranger, commenter- Des noms en français, sans abréviation obscure :
CA facturéplutôt queMesure 3. Le nom s'affiche dans les visuels. - Des mesures explicites : plutôt que de glisser la colonne
Total_HT(somme implicite), on glisse la mesureCA facturé. Une seule définition du CA dans tout le rapport. - Un format à la mesure : devise, pourcentage, décimales.
- Des dossiers d'affichage (volet Propriétés de la mesure) : « Ventes », « Marge », « Temps ».
- Un commentaire quand la règle de gestion n'est pas évidente :
// les commandes annulées ne sont pas du CA.
Une seule définition par indicateur. Si deux mesures « CA » coexistent — l'une avec les annulées, l'autre sans —, deux pages du rapport afficheront deux chiffres différents. La réunion sera consacrée à savoir lequel est juste, pas à décider.
Quiz de fin de séance
Six questions pour vérifier que c'est acquisSix questions de DAX, dont deux à écrire.
Les mesures sont prêtes. La séance 5 les met en page : choisir le bon visuel, construire la page de pilotage, et surtout dire ce qu'elle montre.
STOP exercices. Tu as lu tout l'onglet et répondu à ses questions : arrête-toi ici, ne passe pas encore à l'onglet suivant. En cours, ton intervenant montre l'essentiel sur son écran, puis vous refaites ensemble :
- La marge par catégorie, et le dépôt — atelier 2 : les six contrôles, déposé, mail envoyé
- Les mesures de l'atelier 3 — atelier 3 : les cinq mesures prêtes
Tu travailles seul ? Fais ces exercices maintenant, sur ton modèle sur datashop-modele.xlsx (page Ateliers), puis passe à l'onglet suivant.