Référence DAX · 5 min de lecture

MAX : obtenir la plus grande valeur d’une colonne en DAX

La dernière date de vente, la borne de fin d’une période, le plus grand de deux chiffres. Et la différence avec MAXA et MAXX, qui ne s’emploient pas dans les mêmes cas.

MAX renvoie la plus grande valeur d’une colonne, ou la plus grande de deux expressions qui renvoient chacune une valeur unique. Appliquée à une colonne, elle tient compte des filtres du visuel : dans un tableau par produit, chaque ligne obtient le maximum de son produit.

C’est l’une des fonctions les plus employées en DAX, souvent sans qu’on y pense : MAX(Calendrier[Date]) donne la dernière date de la période affichée, point de départ de la plupart des calculs de cumul ou de périodes glissantes.

Syntaxe

Une colonne, ou deux expressions

MAX(<column>)
MAX(<expression1>, <expression2>)
ParamètreRôle
columnLa colonne dans laquelle chercher la plus grande valeur.
expression1, expression2Deux expressions DAX qui renvoient chacune une valeur unique. MAX renvoie la plus grande des deux.

Les valeurs TRUE/FALSE ne sont pas prises en charge. Avec deux expressions, une valeur vide est traitée comme 0 : MAX(1, BLANK()) renvoie 1, mais MAX(-1, BLANK()) renvoie 0. Si les deux sont vides, MAX renvoie une valeur vide.

MAX, MAXA ou MAXX

FonctionQuand l’employer
MAXLe maximum d’une colonne, ou le plus grand de deux résultats. C’est aussi elle qu’il faut pour comparer des textes.
MAXALe maximum d’une colonne qui contient des valeurs logiques : TRUE compte pour 1, FALSE pour 0. Les cellules vides sont ignorées, et sans valeur utilisable, MAXA renvoie 0.
MAXXLe maximum d’une expression calculée ligne par ligne sur une table.
Exemples

Trois mesures sur un modèle de ventes

Le modèle relie une table Ventes (Date, Quantité, PrixUnitaire, Montant) à Produits et à une table Calendrier. Les mesures de base sont CA = SUM(Ventes[Montant]) et une mesure [Marge].

La date de la dernière vente

Dernière vente = MAX(Ventes[Date])

Dans un tableau par produit, chaque produit affiche la date de sa vente la plus récente. Sur une carte sans filtre, la mesure donne la dernière date de vente de tout le modèle.

La borne de fin de la période affichée

CA cumulé =
VAR Fin = MAX(Calendrier[Date])
RETURN
    CALCULATE(
        [CA],
        FILTER(ALL(Calendrier), Calendrier[Date] <= Fin)
    )

MAX(Calendrier[Date]) renvoie le dernier jour du mois, du trimestre ou de l’année affiché. La mesure additionne alors tout le chiffre d’affaires jusqu’à cette date ; ALL(Calendrier) libère le calcul du filtre de période posé par le visuel.

Le plus grand de deux résultats

Marge plancher = MAX([Marge], 0)

Quand la marge est négative, la mesure affiche 0 ; sinon elle affiche la marge. C’est la seconde forme de MAX, avec deux expressions.

En pratique

Deux erreurs fréquentes

La première : donner un calcul à MAX. La formule MAX(Ventes[Quantité] * Ventes[PrixUnitaire]) est refusée, parce que la première forme de MAX attend une colonne, pas une expression. Pour le maximum d’un calcul ligne par ligne, la bonne fonction est MAXX :

Plus grosse ligne = MAXX(Ventes, Ventes[Quantité] * Ventes[PrixUnitaire])

La seconde : oublier qu’un vide vaut 0 dans la comparaison de deux expressions. On compare l’écart de cette année à celui de l’an dernier avec MAX([Écart], [Écart N-1]). Pour un produit nouveau, l’an dernier est vide ; si l’écart de l’année est négatif, la mesure affiche 0 au lieu de l’écart réel. Testez le vide avec ISBLANK avant de comparer quand ce cas peut se présenter.

Questions fréquentes

Ce qu’on nous demande sur MAX

Quelle différence entre MAX, MAXA et MAXX ?

MAX renvoie le maximum d’une colonne ou de deux expressions. MAXA renvoie le maximum d’une colonne en comptant TRUE pour 1 et FALSE pour 0. MAXX évalue une expression pour chaque ligne d’une table et renvoie la plus grande valeur obtenue.

MAX fonctionne-t-elle sur une colonne de texte ?

Oui. La documentation de MAXA renvoie d’ailleurs vers MAX pour comparer des valeurs de texte. En revanche, MAX ne prend pas en charge les valeurs TRUE et FALSE : pour une colonne logique, il faut MAXA.

Pourquoi MAX renvoie-t-elle 0 alors qu’aucune valeur ne vaut 0 ?

Parce qu’avec deux expressions, une valeur vide est traitée comme 0. MAX(-1, BLANK()) renvoie donc 0. Si les deux expressions sont vides, MAX renvoie une valeur vide.

Peut-on écrire un calcul à l’intérieur de MAX ?

Pas dans la forme à une colonne, qui attend une référence de colonne. Pour le maximum d’un calcul fait ligne par ligne, on utilise MAXX avec la table et l’expression.

À côté

Pour aller plus loin

Sources. Documentation officielle de l’éditeur, consultée le 14 octobre 2026 : MAX, MAXA, MAXX.

Vos indicateurs affichent des zéros que personne n’explique ?

Nous relisons vos mesures DAX pour repérer les valeurs vides traitées comme des zéros et les comparaisons qui faussent les totaux.

Réserver un appelou 01 83 64 60 25
01 83 64 60 25 Réserver un appel