BDMIN (DMIN en anglais) est la fonction de la famille des bases de données Excel qui te permet de trouver la valeur minimale dans une colonne, mais seulement pour les lignes qui respectent des critères que tu poses dans une zone séparée. Elle va plus loin que MIN : là où MIN prend tout en bloc, BDMIN filtre intelligemment avant de chercher le plus petit.
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 de la fonction BDMIN
=BDMIN(base_de_données; champ; critères)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.
Astuce : Pour rendre ta formule plus lisible et plus facile à maintenir, nomme ta base de données : sélectionne A1:D100, puis dans la zone de nom (en haut à gauche), tape BaseDonnees et valide. Tu peux ensuite écrire =BDMIN(BaseDonnees; "Prix"; E1:E2).
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.
Astuce : Pour un critère ET (les deux conditions doivent être vraies simultanément), place-les sur la même ligne dans ta zone de critères. Pour un critère OU (l'une ou l'autre suffit), place-les sur des lignes différentes. Cette flexibilité est ce qui distingue BDMIN de MIN.SI.ENS, qui ne gère que le ET.
Pas envie d'écrire la formule BDMIN à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Acheteur : trouver le prix minimum par fournisseur
Tu es acheteur et tu dois négocier un nouveau contrat. Tu veux savoir quel est le prix le plus bas que ton fournisseur "TechSupply" t'a déjà proposé pour mieux argumenter ta négociation. Ton catalogue contient des centaines de références.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Produit | Fournisseur | Prix | Stock | Fournisseur | |
| 2 | Souris Pro | TechSupply | 25 € | 150 | TechSupply | |
| 3 | Clavier RGB | TechSupply | 89 € | 45 | ||
| 4 | Webcam HD | OfficeMax | 65 € | 30 | Prix min : | |
| 5 | Casque | TechSupply | 42 € | 80 | 25 € |
=BDMIN(A1:D5;"Prix";F1:F2)La zone de critères (en-tête Fournisseur en F1, valeur TechSupply en F2) ne retient que les lignes de ce fournisseur (Souris Pro 25 €, Clavier RGB 89 €, Casque 42 €), puis la fonction renvoie le plus petit prix : 25 €. Tu peux maintenant montrer à ton fournisseur qu'il t'a déjà vendu à ce tarif et négocier sur cette base.
Astuce de pro : Pour rendre la recherche dynamique, référence une cellule au lieu d'écrire le nom du fournisseur directement dans ta zone de critères. Change simplement la valeur dans cette cellule pour interroger n'importe quel fournisseur sans modifier la formule.
Gestionnaire de stock : identifier le stock critique par catégorie
Tu es gestionnaire de stock et tu dois surveiller les niveaux minimum par catégorie de produit. Tu veux identifier le produit avec le stock le plus faible dans la catégorie "Consommables" pour anticiper une rupture.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Article | Catégorie | Stock | Seuil | Catégorie | |
| 2 | Ramette A4 | Consommables | 12 | 20 | Consommables | |
| 3 | Cartouche noire | Consommables | 5 | 15 | ||
| 4 | Agrafeuse | Fournitures | 8 | 10 | Stock min : | |
| 5 | Post-it | Consommables | 18 | 25 | 5 |
=BDMIN(A1:D5;"Stock";F1:F2)La fonction filtre les trois lignes de la catégorie Consommables et renvoie le niveau de stock le plus bas : 5, celui des cartouches noires. Tu sais maintenant qu'il faut réapprovisionner en urgence. Combine-la avec BDLIRE pour récupérer aussi le nom de l'article correspondant automatiquement.
RH : trouver l'ancienneté minimale par département
Tu travailles aux ressources humaines et tu prépares un rapport sur l'ancienneté. Tu veux savoir quelle est la date d'embauche la plus récente dans le département Commercial pour identifier les nouveaux arrivants.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Employé | Département | Date embauche | Salaire | Département | |
| 2 | Sophie Martin | Commercial | 15/03/2022 | 2 800 € | Commercial | |
| 3 | Marc Dubois | IT | 10/01/2021 | 3 200 € | ||
| 4 | Julie Petit | Commercial | 08/11/2023 | 2 600 € | Date min : | |
| 5 | Luc Bernard | Commercial | 22/05/2020 | 3 100 € | 08/11/2023 |
=BDMIN(A1:D5;"Date embauche";F1:F2)Ici, la fonction filtre les trois lignes du département Commercial et renvoie le 08/11/2023 (Julie Petit). Pour Excel, les dates sont des nombres : la date la plus récente correspond au nombre le plus petit, donc la valeur minimale retournée est bien la date d'embauche la plus récente parmi les lignes filtrées.
Astuce de pro : Formate la cellule de résultat en format date pour afficher une date lisible plutôt qu'un numéro de série. Sélectionne la cellule, tape Ctrl+1 et choisis le format Date.
Analyste financier : minimum avec deux critères simultanés
Tu es analyste financier et tu analyses les dépenses. Tu veux trouver la dépense minimale pour la catégorie "Marketing" ET avec un statut "Validé". Deux critères à combiner, sur la même ligne dans la zone de critères.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Date | Catégorie | Montant | Statut | Catégorie | Statut | |
| 2 | 05/01/2024 | Marketing | 450 € | Validé | Marketing | Validé | |
| 3 | 12/01/2024 | IT | 1 200 € | Validé | |||
| 4 | 18/01/2024 | Marketing | 280 € | Validé | Min : | ||
| 5 | 25/01/2024 | Marketing | 650 € | En attente | 280 € |
=BDMIN(A1:D5;"Montant";F1:G2)Les deux critères de la zone (Catégorie en F1 et Statut en G1, valeurs Marketing et Validé sur la même ligne) s'appliquent en ET : la ligne doit correspondre aux deux. La formule ignore donc la dépense Marketing En attente (650 €) et renvoie le plus petit montant restant : 280 €.
Astuce de pro : Pour un OU logique, par exemple Marketing OU IT, ajoute une troisième ligne dans ta zone de critères : F1 = Catégorie, F2 = Marketing, F3 = IT. BDMIN retournera alors le minimum des deux catégories réunies.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 renvoie pas zéro mais #DIV/0!, ce qui peut faire dérailler tout un calcul en aval.
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.
Erreur #DIV/0! : aucune correspondance trouvée
Quand aucune ligne ne correspond à tes critères, BDMIN retourne #DIV/0! au lieu de 0 ou d'une cellule vide. Cela peut casser tes calculs en cascade.
Solution : Encapsule ta formule dans SIERREUR : =SIERREUR(BDMIN(A1:D100;"Prix";F1:F2);"Aucun résultat"). Utilise BDNB avec les mêmes critères pour vérifier combien de lignes correspondent avant d'appliquer BDMIN.
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 #DIV/0! plutôt qu'un 0 trompeur. Pour éviter ce piège, entoure BDMIN d'un SI : =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é pour éviter les erreurs en cascade.
Questions fréquentes sur la fonction BDMIN
Quelle est la différence entre BDMIN et MIN ?
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.
Puis-je utiliser plusieurs critères avec BDMIN ?
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.
Comment exclure les zéros du calcul avec BDMIN ?
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.
BDMIN fonctionne-t-elle avec des dates ?
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.
Pourquoi BDMIN renvoie une erreur #DIV/0! ?
Cette erreur apparaît quand aucune ligne ne correspond à tes critères. Vérifie que tes critères sont bien écrits et qu'ils correspondent exactement aux valeurs de ta base (attention aux espaces et à la casse).
Tu peux encapsuler BDMIN dans SIERREUR : =SIERREUR(BDMIN(...);"") pour afficher une cellule vide ou un message personnalisé plutôt qu'une erreur en cas de résultat vide.
Pour aller plus loin
Les fonctions similaires : MIN.SI.ENS, BDMAX, BDSOMME, BDNB, BDMOYENNE
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

