Les 10 formules DAX essentielles à maîtriser en Power BI

Vous ouvrez Power BI et regardez vos données avec frustration. Les graphiques de base ne suffisent plus pour répondre aux questions de votre direction. C’est exactement là que les DAX formules entrent en jeu. Ce langage de calcul vous donne le pouvoir de créer des analyses sur mesure, du simple cumul annuel aux comparaisons complexes entre périodes. Maîtriser ces dix fonctions essentielles vous permettra de passer du statut de débutant à celui d’utilisateur avancé de Power BI.

En bref

  • CALCULATE est la fonction la plus importante qui modifie le contexte de filtrage et représente 80% des calculs avancés
  • Les fonctions d’agrégation comme SUM, SUMX et DISTINCTCOUNT permettent de calculer des totaux simples ou complexes ligne par ligne
  • FILTER, RELATED et ALL contrôlent précisément quelles données sont incluses dans vos calculs en gérant les filtres et les relations
  • Les fonctions logiques IF et SWITCH créent des calculs conditionnels avec une syntaxe claire pour gérer plusieurs scénarios
  • DATESYTD et l’intelligence temporelle automatisent les cumuls et comparaisons de périodes avec une table calendrier correctement configurée

Pourquoi maîtriser les formules DAX dans Power BI

Les DAX formules représentent le langage de calcul au cœur de Power BI. Elles permettent de transformer vos données brutes en informations exploitables.

Sans ces formules, vous resteriez limité aux fonctionnalités de base. Avec elles, vous créez des calculs personnalisés qui répondent précisément aux besoins de votre entreprise.

Les professionnels qui maîtrisent DAX gagnent un temps considérable dans leurs analyses. Ils construisent des tableaux de bord dynamiques qui s’adaptent automatiquement aux filtres appliqués.

CALCULATE : la formule la plus puissante

La fonction CALCULATE modifie le contexte de filtrage de vos calculs. Elle constitue la base de 80% des calculs avancés dans Power BI.

Cette formule prend une mesure existante et applique des filtres spécifiques. Par exemple, vous pouvez calculer les ventes uniquement pour la France tout en gardant un total global visible.

La syntaxe de base ressemble à ceci : CALCULATE([Mesure], Filtre1, Filtre2). Les filtres peuvent être des conditions simples ou complexes selon vos besoins.

Nous conseillons de toujours tester vos formules CALCULATE sur un petit échantillon de données avant de les déployer sur l’ensemble du modèle.

SUM et SUMX : comprendre la différence

SUM additionne simplement une colonne de votre table. C’est la fonction d’agrégation la plus directe et rapide à exécuter.

SUMX parcourt chaque ligne d’une table et effectue un calcul avant d’additionner les résultats. Cette fonction s’avère indispensable pour les calculs ligne par ligne.

Prenons un exemple concret : pour calculer un chiffre d’affaires, SUM([Montant]) suffit si vous avez déjà une colonne montant. Mais pour multiplier quantité par prix unitaire, vous devez utiliser SUMX.

La formule ressemblerait à : SUMX(Ventes, Ventes[Quantité] * Ventes[PrixUnitaire]). Cette approche offre une flexibilité remarquable.

FILTER : cibler précisément vos données

FILTER crée une table temporaire contenant uniquement les lignes qui respectent une condition. Cette fonction se combine souvent avec CALCULATE pour affiner les résultats.

La syntaxe standard s’écrit : FILTER(Table, Condition). La condition peut comparer des valeurs, vérifier des dates ou tester n’importe quel critère logique.

Attention toutefois : FILTER peut ralentir vos rapports si elle traite des millions de lignes. Privilégiez les filtres simples dans CALCULATE quand c’est possible.

Cette fonction brille vraiment quand vous devez appliquer des conditions complexes impossibles à exprimer autrement. Elle résout des problèmes que les filtres standard ne peuvent pas gérer.

RELATED et RELATEDTABLE : exploiter les relations

RELATED récupère une valeur depuis une table liée. Elle fonctionne dans le sens « plusieurs vers un » de votre modèle de données.

Imaginons une table Ventes reliée à une table Produits. Dans Ventes, vous pouvez créer une colonne calculée avec RELATED(Produits[Catégorie]) pour afficher la catégorie du produit vendu.

RELATEDTABLE fait l’inverse : elle retourne toutes les lignes liées depuis le côté « un » vers le côté « plusieurs ». Cette fonction s’utilise principalement dans les mesures.

Les relations entre tables doivent être correctement définies pour que ces fonctions marchent. Vérifiez toujours votre modèle de données avant de les utiliser.

ALL : retirer les filtres en cours

ALL ignore les filtres appliqués sur une table ou une colonne. Cette capacité permet de créer des calculs de pourcentage du total ou des comparaisons globales.

Pour calculer la part de marché d’un produit, vous divisez ses ventes par le total de toutes les ventes. La formule utilise ALL pour obtenir ce total non filtré.

Voici les principales variantes de cette fonction :

  • ALL(Table) retire tous les filtres de la table spécifiée
  • ALL(Colonne) supprime uniquement les filtres sur cette colonne
  • ALLEXCEPT(Table, Colonne) garde les filtres seulement sur les colonnes mentionnées
  • ALLSELECTED respecte les filtres visuels mais ignore les autres

Chaque variante répond à un besoin spécifique dans vos analyses. Le choix dépend du niveau de filtrage que vous souhaitez conserver.

IF : créer des calculs conditionnels

IF teste une condition et retourne une valeur si elle est vraie, une autre si elle est fausse. C’est la logique conditionnelle de base en DAX.

La structure s’écrit : IF(Test, ValeurSiVrai, ValeurSiFaux). Vous pouvez imbriquer plusieurs IF pour gérer des scénarios à conditions multiples.

Pour catégoriser des montants de ventes, vous pourriez écrire : IF([Ventes] > 10000, « Élevé », IF([Ventes] > 5000, « Moyen », « Faible »)). Cette approche reste lisible jusqu’à 3 niveaux environ.

Au-delà, nous conseillons d’utiliser SWITCH qui offre une syntaxe plus claire pour les tests multiples sur une même valeur.

DATESYTD et les fonctions d’intelligence temporelle

DATESYTD calcule le cumul depuis le début de l’année. Cette fonction fait partie d’une famille complète dédiée aux calculs temporels dans Power BI.

Pour créer un cumul annuel des ventes, écrivez : CALCULATE([Ventes], DATESYTD(Calendrier[Date])). Le résultat s’actualise automatiquement selon le mois sélectionné.

D’autres fonctions similaires existent : DATESMTD pour le cumul mensuel, DATESBETWEEN pour une période personnalisée, ou SAMEPERIODLASTYEAR pour comparer avec l’année précédente.

Ces formules nécessitent une table calendrier correctement marquée comme table de dates dans votre modèle. Sans cette configuration, elles ne fonctionneront pas correctement.

DIVIDE : éviter les erreurs de division

DIVIDE effectue une division tout en gérant automatiquement les divisions par zéro. Cette fonction remplace avavantageusement l’opérateur standard (/).

La syntaxe complète : DIVIDE(Numérateur, Dénominateur, ValeurAlternative). Si le dénominateur vaut zéro, la fonction retourne la valeur alternative au lieu d’une erreur.

Par défaut, sans valeur alternative spécifiée, DIVIDE retourne un résultat vide (BLANK). Cela nettoie vos rapports en évitant l’affichage d’erreurs disgracieuses.

Cette approche simplifie votre code. Au lieu d’écrire des IF pour tester chaque division, vous utilisez directement DIVIDE qui gère ces cas automatiquement.

DISTINCTCOUNT : compter les valeurs uniques

DISTINCTCOUNT compte le nombre de valeurs différentes dans une colonne. Cette mesure répond à des questions comme « combien de clients ont acheté ? » ou « combien de produits différents ont été vendus ? ».

La formule s’écrit simplement : DISTINCTCOUNT(Table[Colonne]). Elle ignore automatiquement les doublons et les valeurs vides dans son calcul.

Cette fonction se révèle particulièrement utile pour analyser l’engagement client. Vous comptez les clients actifs, les nouveaux clients ou tout autre indicateur basé sur l’unicité.

Attention : sur de très grandes tables avec des millions de lignes, DISTINCTCOUNT peut impacter les performances. Testez toujours la vitesse de vos rapports après l’avoir ajoutée.

SWITCH : simplifier les conditions multiples

SWITCH évalue une expression et retourne le résultat correspondant parmi plusieurs options possibles. Cette fonction remplace avantageusement les IF imbriqués complexes.

La syntaxe : SWITCH(Expression, Valeur1, Résultat1, Valeur2, Résultat2, RésultatParDéfaut). Le code devient beaucoup plus lisible qu’avec des IF enchâssés.

Pour attribuer des régions selon des codes départements, SWITCH gère cela élégamment. Vous listez chaque code avec sa région correspondante, puis un résultat par défaut pour les cas non prévus.

Les DAX formules utilisant SWITCH se maintiennent plus facilement dans le temps. Quand vous devez ajouter une condition, vous ajoutez simplement une ligne sans restructurer toute la logique.

FAQ : Vos questions sur les formules DAX dans Power BI

Quelle est la différence entre une mesure et une colonne calculée en DAX ?

Une mesure et une colonne calculée diffèrent par leur moment de calcul. Une mesure se calcule dynamiquement selon le contexte des filtres appliqués dans vos visuels. Une colonne calculée s’exécute une seule fois lors du rafraîchissement des données et stocke les résultats dans votre modèle, ce qui consomme de la mémoire.

Combien de temps faut-il pour apprendre les formules DAX ?

Apprendre les formules DAX nécessite entre 2 et 6 mois selon votre rythme. Les fonctions de base comme SUM ou AVERAGE se maîtrisent en quelques jours. Les fonctions avancées comme CALCULATE demandent plusieurs semaines de pratique régulière. La clé reste de pratiquer sur des projets réels pour progresser efficacement.

Peut-on utiliser DAX sans connaître Excel ?

Utiliser DAX sans connaître Excel est parfaitement possible car ce sont deux langages distincts. Cependant, une connaissance des formules Excel facilite l’apprentissage car les concepts de base restent similaires. DAX offre des fonctionnalités plus avancées spécifiques à l’analyse de données relationnelles dans Power BI.

Quelles sont les erreurs DAX les plus fréquentes à éviter ?

Les erreurs DAX les plus fréquentes incluent la confusion entre mesures et colonnes calculées, l’oubli du contexte de filtrage, et l’utilisation excessive de FILTER qui ralentit les performances. Une autre erreur courante consiste à ne pas vérifier les relations entre tables avant d’utiliser RELATED ou RELATEDTABLE.

Comment optimiser les performances des formules DAX ?

Optimiser les performances des formules DAX passe par plusieurs bonnes pratiques. Privilégiez les mesures aux colonnes calculées quand c’est possible. Utilisez des filtres simples dans CALCULATE plutôt que FILTER sur de grandes tables. Évitez les fonctions itératives comme SUMX sur des millions de lignes si une alternative plus simple existe.