Qu'est-ce que la fonction BDMIN ?
BDMIN (DMIN en anglais) te sert quand ton minimum doit porter sur une portion précise d'un tableau volumineux, une région, un service ou une catégorie, sans avoir à trier ni filtrer ta base à la main avant de chercher la plus petite valeur. Tu la sors dès que MIN seule ramène un résultat qui mélange tout, alors que tu veux la réponse pour un sous-ensemble bien défini.
Concrètement, c'est elle qui te donne le prix le plus bas qu'un fournisseur t'a proposé, le stock le plus faible dans une catégorie donnée, la date d'embauche la plus récente d'un département, ou la dépense la plus petite d'un mois pour une catégorie précise. Et quand les critères deviennent complexes, avec des OU logiques que MIN.SI.ENS ne sait pas gérer, BDMIN reste souveraine.
Syntaxe
=BDMIN(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, BDMIN renvoie une erreur.

Comprendre chaque paramètre de la fonction BDMIN
Les trois arguments s'enchaînent toujours dans le même ordre : d'abord la base entière (en-têtes compris), puis la colonne où chercher le plus petit, enfin la zone de critères. Aucun n'est facultatif. C'est ce troisième argument qui fait toute la différence : selon que tu empiles tes conditions sur la même ligne ou sur des lignes séparées, tu passes d'un ET à un OU.
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 BDMIN 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 BDMIN cherche le minimumTu peux écrire "Prix" 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 "Fournisseur" et F2 contient "TechSupply".
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 BDMIN par rapport aux autres fonctions de minimum.

Exemples pratiques pas à pas
Comment trouver le minimum d'une colonne selon un critère avec la fonction BDMIN
Ton point d'équipe du lundi porte sur la région Nord et tu veux ouvrir sur le chiffre le plus bas, celui qu'il va falloir faire remonter. Tes quatorze vendeurs sont listés avec leur région et le montant qu'ils ont réalisé, et tu cherches la plus petite vente du Nord sans trier la colonne ni la lire ligne à ligne. La fonction BDMIN lit une zone de critères posée à côté du tableau et remonte d'un coup la plus basse valeur qui y répond.
- 1Dans une cellule, écris
=BDMIN(. - 2En 1er argument : sélectionne le tableau entier, ligne d'en-têtes comprise,
A1:C15. Les titresVendeur,RégionetVentesdoivent rester dans la plage, car c'est par eux que la fonction BDMIN sait quelle colonne porte quel nom. Une sélection qui démarre enA2la prive de cette information. - 3En 2ᵉ argument : écris le nom de la colonne où chercher le plus petit montant,
"Ventes". Ce nom doit reprendre l'en-tête de la colonne C au caractère près. Les guillemets sont là pour que la fonction le lise comme un titre de colonne et non comme le nom d'une cellule. - 4En 3ᵉ argument : sélectionne la zone de critères posée à côté du tableau,
E1:E2. Ces deux cellules se préparent avant d'écrire la formule, avec l'en-têteRégionrecopié enE1et la valeurNordécrite juste en dessous. C'est ce bloc qui écarte les lignes des autres régions avant la moindre comparaison. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMIN(A1:C15; "Ventes"; E1:E2)Comment trouver la date la plus ancienne selon un critère avec la fonction BDMIN
Tu prépares la remise des médailles du travail et il te faut, service par service, la personne entrée le plus tôt dans la maison. Ton tableau liste chaque salarié avec son service et sa date d'embauche, dans l'ordre où les contrats ont été saisis, donc pas du tout dans l'ordre chronologique. La fonction BDMIN travaille aussi bien sur des dates que sur des montants, parce qu'Excel range les dates comme des nombres.
- 1Dans une cellule, écris
=BDMIN(. - 2En 1er argument : sélectionne la base à fouiller avec sa ligne de titres,
A1:C7. Les six salariés occupent les lignes 2 à 7, et la ligne 1 porte les en-têtesSalarié,ServiceetDate embauchedont la fonction BDMIN a besoin pour reconnaître les colonnes. - 3En 2ᵉ argument : écris le nom de la colonne à examiner,
"Date embauche". Rien n'oblige cette colonne à contenir des montants, puisqu'une colonne de dates convient tout aussi bien. L'en-tête comporte un espace, et c'est cette écriture exacte, espace compris, que la fonction attend entre les guillemets. - 4En 3ᵉ argument : sélectionne la zone de critères,
E1:E2, où tu as recopié l'en-têteServiceenE1et écritAtelierjuste en dessous. Le filtre porte ainsi sur une colonne pendant que la recherche du minimum porte sur une autre. Il te suffira d'écrireLogistiqueenE2pour obtenir la réponse du service suivant. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMIN(A1:C7; "Date embauche"; E1:E2)Comment trouver le plus petit prix hors zéro avec la fonction BDMIN
L'appel d'offres est clos et on attend de toi le meilleur prix obtenu sur la pièce. Ton tableau aligne chaque fournisseur avec son prix, sauf que deux d'entre eux n'ont pas chiffré et que leur case est restée à zéro, ce qui suffirait à te faire annoncer n'importe quoi. La fonction BDMIN accepte un opérateur de comparaison directement dans la zone de critères, ce qui te permet d'ignorer ces zéros sans toucher au tableau.
- 1Dans une cellule, écris
=BDMIN(. - 2En 1er argument : sélectionne la base entière, en-têtes compris,
A1:B7. Deux colonnes suffisent ici, car la fonction BDMIN n'en exige pas davantage tant que la ligne 1 nommeFournisseuretPrix unitaire. - 3En 2ᵉ argument : écris le nom de la colonne où chercher le prix le plus bas,
"Prix unitaire". C'est aussi elle qui va servir de filtre à l'argument suivant, et ce doublon est parfaitement légal. - 4En 3ᵉ argument : sélectionne la zone de critères,
D1:D2, avec l'en-têtePrix unitairerecopié enD1et la condition>0écrite enD2. Une zone de critères accepte les opérateurs de comparaison aussi bien que les valeurs en dur, donc tu ajustes ton seuil en une frappe avec>=2ou<10. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMIN(A1:B7; "Prix unitaire"; D1:D2)>0 écrit sous l'en-tête Prix unitaire écarte les deux fournisseurs restés à zéro, et la fonction BDMIN cherche le plus petit prix parmi les quatre offres qui restent, soit 3,60 €. Sans ce filtre, elle répondrait 0 €, un tarif que personne ne t'a jamais proposé. Rien n'interdit de filtrer et de chercher le minimum sur la même colonne.
Les erreurs fréquentes avec la fonction BDMIN
Avec BDMIN, l'ennemi numéro un, c'est le décalage entre ta base et ta zone de critères. Une plage qui démarre sous les en-têtes, un nom de colonne retapé avec un espace en trop, un champ sans guillemets qui devient #NOM? : à chaque fois, c'est la communication entre les deux zones qui casse.
Et quand tes critères ne matchent aucune ligne, BDMIN ne proteste pas : elle renvoie 0, un chiffre qui se lit comme un minimum ordinaire et qui file dans tes calculs sans que rien ne t'alerte.
Oublier d'inclure les en-têtes dans base_de_données
Si tu références A2:D100 au lieu de A1:D100, BDMIN ne sait pas identifier tes colonnes et retourne des résultats erronés ou une erreur. C'est l'erreur n°1 sur les fonctions BD*.
Solution : Vérifie toujours que la première ligne de ta plage base_de_données contient les en-têtes. La plage doit TOUJOURS commencer par la ligne d'en-têtes. Les en-têtes sont obligatoires pour toutes les fonctions BD*.
Noms de colonnes différents entre base et critères
Si ton en-tête s'appelle "Prix HT" dans ta base mais que tu écris "Prix" dans ta zone de critères, BDMIN ne trouve aucune correspondance. Même un espace en trop crée un échec silencieux.
Solution : Copie-colle les en-têtes de ta base vers ta zone de critères pour garantir une correspondance exacte. Ne les retape pas manuellement : une différence invisible de casse ou d'espace suffit à tout bloquer.
Aucune correspondance : un 0 qui passe pour un résultat
Quand aucune ligne ne correspond à tes critères, BDMIN retourne 0, pas une erreur. Rien ne signale que le filtre est resté vide, et ce 0 se glisse dans tes calculs en aval comme s'il s'agissait d'un vrai minimum. BDMAX se comporte exactement pareil. Attention, ce n'est pas le cas de toute la famille BD* : BDMOYENNE et BDVAR, elles, renvoient bien #DIV/0! dans la même situation, ce qui explique la confusion.
Solution : SIERREUR ne sert à rien ici, puisqu'il n'y a aucune erreur à intercepter. Compte les lignes retenues avant de lire le résultat : =SI(BDNB(A1:D100;"Prix";F1:F2)=0;"Aucun résultat";BDMIN(A1:D100;"Prix";F1:F2)) distingue un filtre vide d'un minimum qui vaut réellement zéro.
Guillemets oubliés pour le nom du champ
Si tu écris =BDMIN(A1:D10; Prix; F1:F2) sans guillemets autour de Prix, Excel cherche une cellule nommée Prix et retourne probablement une erreur #NOM?.
Solution : Mets toujours des guillemets pour les noms de champs textuels : =BDMIN(A1:D10; "Prix"; F1:F2). Ou utilise le numéro de colonne : =BDMIN(A1:D10; 3; F1:F2).

BDMIN vs MIN vs MIN.SI.ENS vs BDMAX
Tant que tu cherches un minimum sans la moindre condition, MIN suffit largement. Dès qu'il faut filtrer, la question devient : ET ou OU ? MIN.SI.ENS est plus rapide à écrire mais ne sait combiner que des ET. C'est quand tu as besoin d'un OU (plusieurs catégories d'un coup) ou d'une zone de critères que tu réutilises ailleurs que BDMIN devient le bon choix. BDMAX est sa jumelle exacte, à un détail près : elle te renvoie le plus grand au lieu du plus petit.
| Critère | BDMIN | MIN | MIN.SI.ENS | BDMAX |
|---|---|---|---|---|
| Critères 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 | Minimum | Minimum | Minimum | Maximum |
| Cas d'usage typique | Critères OU ou zone réutilisée | Minimum sans critère | Critères ET multiples | Maximum filtré |

Astuces avancées avec BDMIN
Critère OU : empile les lignes dans ta zone
Pour trouver le minimum sur deux catégories combinées, par exemple Consommables et Fournitures, ajoute une troisième ligne dans ta zone de critères : F1 = Catégorie, F2 = Consommables, F3 = Fournitures. La formule =BDMIN(A1:C100;"Stock";F1:F3) retournera alors le minimum sur les deux catégories réunies.
C'est l'avantage décisif de BDMIN : MIN.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 F2 (sous l'en-tête Date) pour filtrer les 30 derniers jours. La formule =BDMIN(A1:C100;"Montant";F1:F2) 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 BDMIN
Quand aucune ligne ne correspond aux critères, BDMIN retourne un 0 trompeur plutôt qu'une erreur, et rien ne t'avertit. C'est précisément ce qui rend le test préalable indispensable : =SI(BDNB(A1:C100;"Stock";F1:F2)>0;BDMIN(A1:C100;"Stock";F1:F2);"Aucun résultat") affiche un message clair quand les critères ne matchent rien.
Utilise cette approche dans tout rapport partagé : c'est le seul moyen de distinguer « aucune ligne trouvée » d'un stock réellement tombé à zéro.
Questions fréquentes
MIN calcule simplement le minimum d'une plage sans condition. BDMIN te permet de filtrer les données selon des critères complexes avant de calculer le minimum, en utilisant une zone de critères séparée. C'est comme avoir MIN combiné avec des filtres automatiques. BDMIN gère aussi les critères OU (plusieurs valeurs possibles pour une colonne) en ajoutant des lignes dans la zone. MIN ne fait aucun filtrage.
Oui. Tu peux combiner plusieurs critères dans ta zone de critères : par exemple, trouver le prix minimum des produits de catégorie Électronique ET avec un stock supérieur à 10. Place chaque critère sur la même ligne pour un ET logique, ou sur des lignes différentes pour un OU.
Cette flexibilité dépasse ce que MIN.SI.ENS peut faire, car MIN.SI.ENS ne gère que le ET logique.
Ajoute simplement un critère >0 dans ta zone de critères sous l'en-tête du champ concerné. BDMIN ignorera alors toutes les valeurs nulles et te donnera le minimum des valeurs strictement positives.
Tu peux combiner ce critère avec d'autres filtres : >0 dans une colonne et le nom de la catégorie dans une autre, sur la même ligne pour un ET logique.
Oui. BDMIN retournera la date la plus ancienne parmi celles qui correspondent aux critères. Pour Excel, les dates sont des nombres : la date la plus ancienne = le nombre le plus petit. Si tu veux trouver la date la plus récente (et non la plus ancienne), utilise BDMAX sur la colonne de dates : BDMAX retourne le nombre le plus grand, qui correspond à la date la plus récente.
Elle renvoie 0, et surtout pas une erreur. C'est un piège, car ce 0 est indiscernable d'un minimum qui vaudrait réellement zéro, et rien ne t'indique que le filtre n'a rien trouvé. BDMAX fait exactement la même chose, alors que BDMOYENNE et BDVAR renvoient bien #DIV/0! dans ce cas.
SIERREUR est donc inutile ici, puisqu'il n'y a rien à intercepter. Compte les lignes retenues avec BDNB et les mêmes critères : =SI(BDNB(...)=0;"Aucun résultat";BDMIN(...)). Vérifie aussi que tes critères correspondent exactement aux valeurs de ta base, en particulier les espaces et la casse.
Pour aller plus loin
Continue sur ta lancée après la fonction BDMIN : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



