Qu'est-ce que la fonction BDMAX ?
BDMAX (DMAX en anglais) te sert quand ton maximum doit porter sur une portion précise d'un tableau volumineux, une région, un produit ou une période, sans avoir à trier ni filtrer ta base à la main avant de chercher la plus grande valeur. Tu la sors dès que MAX seule ramène un record qui mélange tout, alors que tu veux la réponse pour un sous-ensemble bien défini.
Concrètement, c'est elle qui t'identifie la meilleure vente d'une région précise, le stock le plus élevé atteint pour un produit donné, le salaire maximum d'un département ou la dépense marketing la plus grosse sur une année. Et quand les critères deviennent complexes, avec des OU logiques que MAX.SI.ENS ne sait pas gérer, BDMAX reste souveraine.
Syntaxe
=BDMAX(base_de_données; champ; critères)Clique sur un argument pour aller à son explication.
La zone de critères doit toujours comporter au moins deux lignes : la première avec les noms de colonnes (identiques aux en-têtes de ta base), la deuxième avec les valeurs recherchées. Si elle n'a pas d'en-tête, BDMAX renvoie une erreur.

Comprendre chaque paramètre de la fonction BDMAX
Les trois arguments de BDMAX sont tous obligatoires et se lisent dans l'ordre : d'abord la plage de ta base (en-têtes compris), ensuite la colonne où chercher le maximum, enfin la zone de critères qui filtre les lignes. Aucun n'est facultatif, contrairement à d'autres fonctions de base de données.
Le champ accepte deux écritures : le nom de l'en-tête entre guillemets ("Ventes") ou son numéro de position (3). Le nom résiste mieux : si tu insères une colonne, un numéro pointe soudain au mauvais endroit.
base_de_données
: la plage complète de ta base de données, en-têtes de colonnes inclus en première lignePar exemple A1:D100 si ta base couvre les colonnes A à D sur 100 lignes. Les en-têtes sont indispensables car BDMAX les utilise pour identifier les colonnes.
Excel teste chaque ligne de cette plage (sauf la ligne d'en-têtes) et ne retient que celles qui correspondent aux critères. Assure-toi que ta base est continue, sans ligne vide au milieu.
champ
: le nom ou le numéro de la colonne dans laquelle BDMAX cherche le maximumTu peux écrire "Ventes" entre guillemets (le nom exact de l'en-tête, insensible à la casse) ou utiliser un numéro comme 3 pour désigner la 3e colonne de ta base.
Le nom en texte est plus lisible et plus robuste : si tu insères une colonne, le numéro devient faux mais le nom reste juste.
critères
: une zone séparée de ton tableau qui contient les conditions de filtrageElle doit avoir au minimum deux lignes : la première avec les noms des colonnes concernées (identiques aux en-têtes de ta base), la seconde avec les valeurs recherchées. Par exemple F1:F2 où F1 contient "Région" et F2 contient "Nord".
Tu peux avoir plusieurs colonnes dans cette zone pour des critères ET (sur la même ligne) ou plusieurs lignes pour des critères OU (lignes différentes). C'est toute la puissance de BDMAX par rapport aux autres fonctions de maximum.

Exemples pratiques pas à pas
Comment trouver le maximum d'une colonne selon un critère avec la fonction BDMAX
La réunion régionale commence dans dix minutes et on te demande la plus grosse vente du Nord pour ouvrir la présentation. Tes quatorze vendeurs sont listés avec leur région et le montant qu'ils ont réalisé, et tu veux ce record sans trier la colonne ni la parcourir des yeux. La fonction BDMAX lit une zone de critères posée à côté du tableau et remonte d'un coup la plus haute valeur qui y répond.
- 1Dans une cellule, écris
=BDMAX(. - 2En 1er argument : sélectionne toute la base avec sa ligne d'en-têtes,
A1:C15. Ces titres ne sont pas un détail de sélection, car la fonction BDMAX s'en sert pour reconnaître les colonnesVendeur,RégionetVentes. - 3En 2ᵉ argument : saisis le nom de la colonne où chercher le plus grand nombre,
"Ventes", entre guillemets et calqué sur l'en-tête de la colonne C. Son rang dans la base,3, ferait aussi l'affaire, mais un numéro se met à pointer la mauvaise colonne dès que tu en insères une. - 4En 3ᵉ argument : sélectionne la zone qui filtre les lignes,
E1:E2. Ce bloc de deux cellules se prépare à côté du tableau avant d'écrire la formule, en recopiant l'en-têteRégionen E1 et en écrivantNorden E2. Il décide des lignes retenues avant la moindre comparaison de montants. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMAX(A1:C15; "Ventes"; E1:E2)Nord par Sud en E2 et le maximum se recalcule tout seul, sans que tu rouvres la formule. En revanche, le nom du vendeur n'apparaît nulle part : la fonction BDMAX rend une valeur, jamais la ligne qui la porte.Comment trouver la date la plus récente selon un critère avec la fonction BDMAX
Un client t'appelle pour contester une relance et veut savoir quand remonte sa dernière commande. Tes commandes sont saisies au fil de l'eau, tous clients mélangés, et il te faut la date la plus récente de ce client-là pendant qu'il est encore au téléphone. La fonction BDMAX ne travaille pas que sur des montants : elle remonte aussi bien la date la plus récente, parce qu'Excel range les dates comme des nombres.
- 1Dans une cellule, écris
=BDMAX(. - 2En 1er argument : sélectionne la base avec sa ligne d'en-têtes,
A1:C7. Les six commandes occupent les lignes 2 à 7, et la ligne 1 qui les surplombe donne à la fonction BDMAX les nomsClient,Date commandeetMontant. - 3En 2ᵉ argument : saisis le nom de la colonne où chercher la plus grande valeur,
"Date commande". L'en-tête tient en deux mots, donc il se recopie tel quel entre guillemets, espace compris. Une colonne de dates convient ici aussi bien qu'une colonne de montants. - 4En 3ᵉ argument : sélectionne la zone qui filtre les lignes,
E1:E2. Tu y as recopié l'en-têteClienten E1 et écritMenuiserie Royen E2, à côté du tableau. Le filtre porte donc sur une colonne pendant que la recherche du maximum porte sur une autre, et c'est le cas le plus courant. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMAX(A1:C7; "Date commande"; E1:E2)Menuiserie Roy, elle garde la plus grande valeur, c'est-à-dire la plus récente, soit le 27/03/2026. La cellule de résultat affiche d'abord un nombre à cinq chiffres, et c'est normal : passe-la au format Date avec Ctrl+1 pour retrouver une date lisible.Comment retrouver le vendeur qui détient le maximum avec la fonction BDMAX
Tu as le montant de la meilleure vente du Nord, et la question qui suit tombe toujours : qui l'a signée ? Tes vendeurs sont listés avec leur région et leur montant, et tu veux afficher ce nom automatiquement, pour qu'il suive tout seul quand les chiffres du mois prochain arriveront. La fonction BDMAX ne rend qu'une valeur, donc il faut deux fonctions de plus pour remonter jusqu'à la ligne qui la porte.
- 1Dans une cellule, écris
=INDEX(. - 2En 1er argument : sélectionne la colonne où lire le nom cherché,
A2:A7. Elle démarre à la ligne 2 et laisse l'en-tête de côté, tout comme la plageC2:C7de l'étape suivante, sinon la position trouvée plus loin désignerait le mauvais vendeur. - 3En 2ᵉ argument : écris la recherche de position et referme-la,
EQUIV(BDMAX(A1:C7; "Ventes"; E1:E2); C2:C7; 0). La fonction BDMAX y sort d'abord le plus gros montant du Nord, à partir de la baseA1:C7et de la zone de critèresE1:E2où tu as posé l'en-têteRégionpuis la valeurNord. La fonction EQUIV cherche ensuite ce montant dans la colonneVenteset renvoie son rang, tandis que le0final impose une correspondance exacte. - 4Ferme la parenthèse de la fonction INDEX et appuie sur Entrée. Celles des fonctions EQUIV et BDMAX ont déjà été refermées à l'étape précédente.
=INDEX(A2:A7; EQUIV(BDMAX(A1:C7; "Ventes"; E1:E2); C2:C7; 0))Ventes et renvoie sa position, la 5e ligne, puis INDEX va lire le nom qui se trouve à cette position : Emma Roux. Attention en cas d'égalité : si deux vendeurs affichaient 28 000 €, EQUIV s'arrêterait au premier des deux.
Les erreurs fréquentes avec la fonction BDMAX
Avec BDMAX, le souci vient presque toujours du dialogue entre ta zone de critères et tes en-têtes. Un 0 qui s'affiche signifie qu'aucune ligne n'a matché : c'est souvent un espace invisible ou une casse qui sépare le nom dans tes critères de l'en-tête de la base.
Les deux autres pièges sont plus mécaniques : un nom de champ tapé sans guillemets te renvoie #NOM?, et une base trouée de lignes vides fausse silencieusement le résultat.
BDMAX retourne 0 au lieu de la valeur attendue
Zéro signifie qu'aucune ligne de ta base ne correspond aux critères. La cause la plus fréquente : une différence invisible entre le nom dans ta zone de critères et l'en-tête de colonne (espace en fin de chaîne, casse différente, accent manquant).
Solution : Compare les en-têtes caractère par caractère en mode zoom. Utilise =BDNB(base;champ;critères) avec les mêmes critères : si le résultat est 0, ton problème vient des critères, pas de BDMAX. Nettoie les espaces parasites avec SUPPRESPACE.
Erreur #VALEUR! ou #NOM? au lancement de la formule
L'erreur #NOM? survient si le nom du champ est saisi sans guillemets : Excel le prend alors pour un nom défini qu'il ne trouve pas. L'erreur #VALEUR! apparaît, elle, quand le nom placé entre guillemets ne correspond à aucun en-tête de ta base (faute de frappe, accent ou espace en trop).
Solution : Mets toujours le nom du champ entre guillemets : "Ventes" et non Ventes. Vérifie aussi que ta zone de critères comporte bien une ligne d'en-tête en première ligne.
Résultat inattendu malgré des critères corrects
Si ta base de données contient des lignes vides ou des en-têtes répétés au milieu du tableau, BDMAX peut s'arrêter prématurément ou prendre des lignes non souhaitées dans le calcul.
Solution : Assure-toi que ta base est continue de la première à la dernière ligne, sans interruption. La ligne d'en-tête doit être unique, en toute première ligne de la plage base_de_données.

BDMAX vs MAX vs MAX.SI.ENS vs BDMIN
Garde MAX tant que tu veux le plus grand sans filtrer, et MAX.SI.ENS pour des critères ET simples écrits directement dans la formule. Le moment où BDMAX prend l'avantage, c'est quand tu as besoin d'un OU logique (Nord OU Sud) ou d'une zone de critères que tu réutilises dans plusieurs formules : MAX.SI.ENS ne sait pas faire le OU.
BDMIN est sa jumelle exacte, mêmes règles de zone de critères et de joker, mais elle renvoie le minimum au lieu du maximum.
| Critère | BDMAX | MAX | MAX.SI.ENS | BDMIN |
|---|---|---|---|---|
| Critères complexes (OU logique) | ✅ Oui (lignes multiples) | ❌ Non | ⚠️ Uniquement ET | ✅ Oui (lignes multiples) |
| Zone de critères séparée | ✅ Oui | ❌ Non | ❌ Non | ✅ Oui |
| Caractères joker (* ?) | ✅ Oui | ❌ Non | ✅ Oui | ✅ Oui |
| Facilité de saisie | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| Résultat | Maximum | Maximum | Maximum | Minimum |
| Cas d'usage typique | Critères OU ou zone réutilisée | Maximum sans critère | Critères ET multiples | Minimum filtré |

Astuces avancées avec BDMAX
Critère OU : additionne les lignes dans ta zone
Pour trouver le maximum de deux régions combinées, par exemple Nord et Sud, ajoute une troisième ligne dans ta zone de critères : E1 = Région, E2 = Nord, E3 = Sud. La formule =BDMAX(A1:C100;"Ventes";E1:E3) retournera alors le maximum sur les deux régions réunies.
C'est l'avantage décisif de BDMAX : MAX.SI.ENS ne peut pas gérer ce cas en une seule formule.
Critères calculés dynamiques dans ta zone
Tu peux placer des formules dans ta zone de critères, pas seulement des valeurs fixes. Par exemple, mets =AUJOURDHUI()-30 en E2 (sous l'en-tête Date) pour filtrer les 30 derniers jours. La formule =BDMAX(A1:C100;"Montant";E1:E2) se recalculera automatiquement chaque jour sans que tu touches à rien.
Ce principe s'étend à tout calcul : seuils basés sur une moyenne, conditions sur l'année en cours, etc.
Sécurise avec BDNB avant BDMAX
Quand aucune ligne ne correspond aux critères, BDMAX retourne 0, ce qui est indistinguable d'un vrai zéro dans tes données. Pour éviter ce piège, entoure BDMAX d'un SI : =SI(BDNB(A1:C100;"Montant";E1:E2)>0;BDMAX(A1:C100;"Montant";E1:E2);"Aucun résultat") affiche un message clair quand les critères ne matchent rien.
Utilise cette approche dans tout rapport partagé où un 0 trompeur peut induire une décision erronée.
Questions fréquentes
BDMAX utilise une zone de critères séparée (un mini-tableau à côté de tes données) tandis que MAX.SI.ENS intègre les critères directement dans la formule. La différence clé : BDMAX gère les critères OU (plusieurs valeurs possibles pour une même colonne) en ajoutant des lignes dans la zone. MAX.SI.ENS ne fait que le ET. Pour des critères simples ET, MAX.SI.ENS est plus direct. Pour des combinaisons OU ou une zone de critères réutilisée dans plusieurs formules, BDMAX est plus adaptée.
Non, BDMAX retourne le maximum d'une seule colonne (le champ que tu spécifies). Si tu dois comparer des valeurs issues de plusieurs colonnes, utilise une colonne calculée dans ton tableau ou combine plusieurs BDMAX dans une formule MAX(BDMAX(...); BDMAX(...)).
Chaque appel de BDMAX cible une colonne précise : c'est sa logique de conception.
Place les critères sur des lignes différentes dans ta zone de critères. Pour chercher le maximum des régions Nord OU Sud, ta zone doit avoir trois lignes : Région en E1 (en-tête), Nord en E2, Sud en E3. La formule =BDMAX(base;"Ventes";E1:E3) couvre les deux régions.
Sur la même ligne = ET (les deux conditions doivent être vraies). Sur des lignes différentes = OU (l'une ou l'autre suffit).
Oui. Les dates sont des nombres dans Excel, donc BDMAX retourne la date la plus récente parmi celles qui correspondent aux critères. Formate simplement la cellule de résultat en format date pour afficher une date lisible plutôt qu'un numéro de série. C'est pratique pour trouver la dernière commande d'un client, la date de fin de projet la plus éloignée ou la livraison la plus récente pour un fournisseur donné.
Oui. Le * remplace n'importe quel nombre de caractères et le ? remplace un seul caractère. En E2, Par* correspondra à Paris, Pardieu, Parmentier, etc.
C'est utile pour rechercher des catégories qui partagent un préfixe ou pour cibler des références produit partielles, sans avoir à lister toutes les valeurs exactes.
Pour aller plus loin
Continue sur ta lancée après la fonction BDMAX : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



