Référence Power Query & DAX en français
L’essentiel des fonctions DAX et du langage M de Power Query, expliqué en français et orienté cas concrets. Cette page condense plus de 190 fiches et tutoriels publiés par notre cabinet depuis 2021.
Power BI repose sur deux langages : DAX pour les mesures et calculs analytiques, M (Power Query) pour la préparation des données. Cette page de référence regroupe les fonctions les plus utilisées de chacun, classées par usage, avec pour chaque famille les cas où nous les employons en mission. Elle remplace nos anciennes fiches unitaires : si un ancien lien vous a conduit ici, la fonction que vous cherchiez figure dans l’une des sections ci-dessous, et la syntaxe complète reste documentée sur Microsoft Learn (DAX) et Microsoft Learn (Power Query M).
Fonctions DAX : mesures et calculs
Agrégations
Le socle de toute mesure. Les versions en X (SUMX, AVERAGEX, MAXX) itèrent ligne à ligne sur une table, ce qui permet de calculer une expression avant d’agréger.
| Fonction | Ce qu’elle fait |
|---|---|
SUM / SUMX | Somme d’une colonne / somme d’une expression évaluée ligne à ligne (ex. quantité × prix). |
AVERAGE / AVERAGEX | Moyenne d’une colonne numérique / d’une expression par ligne. |
COUNTROWS, COUNTA, DISTINCTCOUNT | Compter des lignes, des valeurs non vides, des valeurs distinctes (clients uniques, commandes…). |
MIN / MAX / MAXX | Valeur extrême d’une colonne ou d’une expression (dernière date de vente, panier maximum…). |
Filtres et contexte : CALCULATE et sa famille
CALCULATE est la fonction la plus importante de DAX : elle évalue une expression dans un contexte de filtre modifié. C’est elle qui permet le « CA de l’an dernier », la « part du total » ou le « hors avoirs ».
CALCULATE | Évalue une mesure avec des filtres ajoutés, remplacés ou retirés. |
FILTER | Filtre une table ligne à ligne avec une condition libre. À réserver aux conditions complexes. |
ALL, ALLEXCEPT, ALLSELECTED, ALLCROSSFILTERED | Retirent tout ou partie des filtres : indispensables pour les parts du total et les comparaisons. |
REMOVEFILTERS, KEEPFILTERS | Variantes explicites pour lever ou conserver des filtres dans un CALCULATE. |
LOOKUPVALUE, RELATED, TREATAS | Récupérer une valeur d’une autre table, avec ou sans relation physique. |
Time intelligence : comparer des périodes
Les fonctions temporelles exigent une table de dates continue marquée comme table de calendrier. Un exemple courant, le cumul annuel :
CA cumul annuel =
TOTALYTD ( [Chiffre d'affaires], 'Calendrier'[Date] )
TOTALYTD, DATESYTD | Cumul depuis le début de l’année (fiscal possible via le paramètre de fin d’exercice). |
SAMEPERIODLASTYEAR, DATEADD | Même période l’an dernier, ou décalage libre (mois, trimestre, année) pour les variations N-1. |
DATESINPERIOD | Fenêtre glissante (12 derniers mois, 90 derniers jours) pour les moyennes mobiles. |
EOMONTH, DATEVALUE | Fin de mois et conversion texte → date, utiles pour construire les bornes de période. |
CALENDAR, CALENDARAUTO | Générer la table de dates. Nous créons systématiquement un calendrier dédié dans chaque modèle. |
Tables et modélisation
SUMMARIZE, ADDCOLUMNS | Construire des tables d’agrégats ou enrichies, pour les mesures avancées et les tables calculées. |
VALUES, DISTINCT | Liste des valeurs uniques visibles dans le contexte courant. |
RELATEDTABLE | Depuis le côté « 1 » d’une relation, récupérer les lignes liées côté « plusieurs ». |
Power Query : préparer les données
Tout ce qui se passe avant le modèle : connexion aux sources, nettoyage, transformation. L’éditeur graphique génère du M ; connaître les fonctions sous-jacentes permet d’aller plus loin que l’interface.
Manipuler les tables
Table.SelectRows | Filtrer les lignes selon une condition (l’équivalent du filtre de l’interface, en plus puissant). |
Table.Combine, Table.NestedJoin | Empiler plusieurs tables, ou les joindre sur une clé (fusion de requêtes). |
Table.FuzzyNestedJoin, Table.AddFuzzyClusterColumn | Jointures et regroupements approximatifs : précieux pour rapprocher des libellés saisis à la main. |
Table.FirstN, Table.AlternateRows, Table.Split | Échantillonner, garder une ligne sur deux, découper une table en lots. |
Table.Profile, Table.Schema, Table.RowCount | Auditer une table : profil statistique, types de colonnes, volumétrie. |
Excel.Workbook | Lire un classeur Excel entier, y compris récupérer tous les onglets d’un coup. |
Texte et dates
Text.Proper, Text.Lower, Text.Upper | Casse des libellés : majuscule à chaque mot, tout en minuscules ou en capitales. |
Text.Trim, Text.Clean, Text.Replace, Text.Split | Nettoyer espaces et caractères invisibles, remplacer, découper : le quotidien du nettoyage de données. |
Date.AddDays / AddWeeks / AddMonths / AddQuarters | Décaler une date de n jours, semaines, mois ou trimestres. |
Date.EndOfWeek / Month / Quarter / Year | Bornes de période, pour rattacher chaque ligne à sa fin de semaine, de mois ou d’exercice. |
Date.DayOfWeek, Date.DayOfYear, Date.IsInCurrentMonth… | Attributs calendaires et tests de période courante (jour, semaine, mois, trimestre). |
DateTime.LocalNow, Date.From, DateTime.From | Horodatage courant et conversions texte/nombre vers date ou datetime. |
Gérer les erreurs
Une requête robuste anticipe les valeurs impossibles : try … otherwise intercepte l’erreur au niveau d’une expression, Table.RemoveRowsWithErrors purge les lignes fautives, et Error.Record permet de créer des messages d’erreur explicites pour les utilisateurs de vos requêtes.
Connecter Google Sheets à Power BI
C’est la question qu’on nous pose le plus, en France comme à l’international. Depuis Power BI Desktop : Obtenir les données → Google Sheets, collez l’URL complète du classeur, authentifiez-vous avec le compte Google qui a accès au document, puis choisissez les feuilles à charger. Deux points de vigilance : le connecteur lit le classeur entier (pas une plage nommée), et l’actualisation planifiée dans le service Power BI nécessite de re-saisir l’identifiant Google dans les paramètres de la source de données. Pour un partage en lecture seule sans compte Google, l’alternative consiste à publier la feuille au format CSV et à utiliser le connecteur Web. Le pas-à-pas complet, avec l’actualisation automatique et les erreurs classiques, est dans notre guide Google Sheets × Power BI.
DAX ou Power Query : les questions qui reviennent
Power Query prépare les données avant leur chargement : connexion, nettoyage, mise en forme. DAX calcule après le chargement : mesures, KPI, comparaisons de périodes. Règle pratique : ce qui peut être fait en amont dans Power Query doit l’être, DAX se concentre sur ce qui dépend du contexte d’analyse.
Une mesure, dans la grande majorité des cas. Elle se recalcule selon les filtres et n’alourdit pas le modèle. La colonne calculée se justifie quand la valeur doit servir d’axe d’analyse ou de filtre (une tranche d’âge, une catégorie dérivée).
La documentation Microsoft Learn reste la référence exhaustive, en français, pour DAX comme pour le langage M. Cette page vous oriente vers la bonne fonction ; Microsoft Learn en donne tous les paramètres.
Vos rapports Power BI méritent un second regard ?
Modèle lent, mesures fragiles, actualisations qui échouent : notre audit Power BI express passe votre déploiement au crible sur 10 critères, avec un plan d’action concret. Et pour le reste de votre stack, voyez notre expertise Power BI.
Parler à un consultant