DAX (Data Analysis Expressions) est le langage de formule de Power BI. Maîtriser les bonnes formules fait la différence entre un rapport basique et un véritable outil d'aide à la décision. Voici les 15 formules indispensables.
Les fondamentaux
SUM : additionne les valeurs d'une colonne. Exemple : Total Ventes = SUM(Ventes[Montant]). Simple mais essentiel.
COUNT / COUNTA : compte les lignes. COUNT pour les nombres, COUNTA pour toutes les valeurs non vides. DISTINCTCOUNT : compte les valeurs uniques, par exemple le nombre de clients distincts.
AVERAGE : calcule la moyenne. MIN / MAX : récupère les extremums. Ces 6 fonctions couvrent 60% des besoins de base.
CALCULATE : la formule la plus puissante
CALCULATE est la fonction la plus importante de DAX. Elle évalue une expression dans un contexte de filtre modifié. Exemple : Ventes Paris = CALCULATE(SUM(Ventes[Montant]), Magasins[Ville] = "Paris").
CALCULATE permet de créer des mesures dynamiques qui répondent aux filtres de la page tout en ajoutant des conditions supplémentaires. C'est la clé pour créer des comparaisons (vs objectif, vs année précédente, vs moyenne) au sein d'un même visuel.
Les fonctions de filtre
FILTER : retourne une table filtrée selon une condition. Utile dans CALCULATE pour des filtres complexes. ALL : supprime tous les filtres d'une table ou colonne. Indispensable pour calculer des pourcentages du total. Exemple : % du Total = DIVIDE(SUM(Ventes[Montant]), CALCULATE(SUM(Ventes[Montant]), ALL(Ventes))).
ALLEXCEPT : supprime tous les filtres sauf ceux spécifiés. VALUES : retourne les valeurs distinctes d'une colonne dans le contexte actuel. SELECTEDVALUE : retourne la valeur sélectionnée si elle est unique, sinon une valeur par défaut.
Time Intelligence
DATEADD : décale une période dans le temps. Exemple : Ventes M-1 = CALCULATE(SUM(Ventes[Montant]), DATEADD(Calendrier[Date], -1, MONTH)). SAMEPERIODLASTYEAR : compare avec la même période l'année précédente.
TOTALYTD : calcule le cumul depuis le début de l'année. DATESYTD : retourne les dates depuis le 1er janvier. Ces fonctions nécessitent une table calendrier complète et continue pour fonctionner correctement.
Les itérateurs
SUMX : parcourt une table ligne par ligne et additionne le résultat d'une expression. Exemple : CA = SUMX(Lignes, Lignes[Quantité] * Lignes[PrixUnitaire]). Contrairement à SUM qui ne peut additionner qu'une seule colonne, SUMX peut évaluer des expressions complexes.
AVERAGEX et MAXX fonctionnent sur le même principe. Attention : les itérateurs sont plus lents que les agrégations simples sur de grandes tables.
Formules avancées pour aller plus loin
RANKX : classe les valeurs. Rang = RANKX(ALL(Produits), [Total Ventes], , DESC). SWITCH : remplace les IF imbriqués. DIVIDE : division sécurisée qui retourne un résultat alternatif en cas de division par zéro (au lieu d'une erreur). HASONEVALUE : vérifie si un filtre ne retourne qu'une seule valeur, utile pour les titres dynamiques.
Pour aller plus loin dans la maîtrise de DAX, découvrez notre formation Power BI Avancé qui couvre en profondeur les contextes d'évaluation et les patterns DAX avancés.
