Fonction BDNB ExcelGuide Complet 2026 – Comptage Conditionnel de Base de Données
BDNB (DCOUNT en anglais) est une fonction puissante qui compte les cellules contenant des valeurs numériques dans une base de données selon des critères que tu définis dans une zone séparée. Contrairement à NB.SI qui limite à un seul critère simple, BDNB te permet de combiner plusieurs critères complexes avec des opérateurs ET et OU.
Cette fonction fait partie de la famille des fonctions BD (Base de Données) d'Excel, conçues pour analyser des tableaux structurés avec en-têtes de colonnes. Si tu gères des listes de clients, des inventaires ou des données de vente, BDNB va te permettre de compter rapidement combien d'enregistrements correspondent à tes critères métier, même les plus complexes.
Syntaxe de la fonction BDNB
=BDNB(base_de_données; champ; critères)La fonction BDNB compte uniquement les cellules numériques qui correspondent à tes critères. Elle ignore automatiquement les cellules vides et les textes dans le champ spécifié.
La force de BDNB réside dans sa zone de critères : tu peux y définir des conditions complexes (plus grand que, commence par, entre deux valeurs...) et combiner plusieurs colonnes avec des opérateurs logiques, le tout dans un tableau séparé et visible.
Comprendre chaque paramètre de la fonction BDNB
base_de_données
(obligatoire)C'est la plage complète de ton tableau de données, en-têtes inclus. Par exemple A1:D100 si ton tableau commence en A1 avec les titres de colonnes et contient des données jusqu'à la ligne 100 sur 4 colonnes. Excel utilisera la première ligne comme référence pour identifier les champs. Sans les en-têtes, BDNB ne peut pas fonctionner correctement.
champ
(obligatoire)C'est la colonne dans laquelle BDNB va compter les valeurs numériques. Tu peux l'indiquer de trois façons : 1) Le nom du champ entre guillemets comme "Montant", 2) Un numéro de colonne comme 3 (pour la 3ème colonne de la base), 3) Une référence de cellule contenant le nom comme F1. Le nom entre guillemets est le plus lisible et recommandé.
critères
(obligatoire)C'est une zone séparée de ton tableau (souvent en haut à droite ou en bas) qui contient les conditions de filtrage. La première ligne doit contenir les noms des champs (exactement comme dans ta base), et les lignes suivantes contiennent les valeurs à filtrer. Par exemple, E1:F2 où E1 contient "Région", F1 contient "Montant", E2 contient "Nord" et F2 contient ">1000". BDNB comptera alors uniquement les lignes de la région Nord avec un montant supérieur à 1000.
Astuce : Place ta zone de critères au-dessus de ton tableau principal ou sur le côté. Garde toujours une ligne vide entre ta base de données et tes critères pour éviter qu'Excel les mélange. Tu peux aussi mettre les critères sur une autre feuille pour garder ton tableau principal propre.
Exemples pratiques pas à pas
Exemple 1 – RH : compter les employés avec un salaire dans une fourchette
Tu travailles aux ressources humaines et ton directeur te demande combien d'employés gagnent entre 2 500 € et 3 500 €. Tu as une base de données avec nom, département et salaire.
Zone critères en A7:B8 : deux critères sur la même colonne (Salaire) appliqués avec ET logique.
| A | B | C | |
|---|---|---|---|
| 1 | Nom | Département | Salaire |
| 2 | Martin | Commercial | 3 200 |
| 3 | Dubois | IT | 2 800 |
| 4 | Bernard | RH | 2 600 |
| 5 | Thomas | IT | 4 000 |
| 6 | |||
| 7 | Critères : | ||
| 8 | Salaire | Salaire | |
| 9 | >2500 | <3500 |
=BDNB(A1:C5;"Salaire";A7:B8)BDNB compte Martin (3200), Dubois (2800) et Bernard (2600). Thomas est exclu car son salaire de 4000 dépasse 3500. Les deux critères sur la même ligne créent un ET : doit être >2500 ET <3500.
Exemple 2 – Commercial : compter les ventes d'une région spécifique
Tu es responsable commercial et tu dois présenter combien de ventes ont été réalisées dans la région Nord ce trimestre. Ta base contient vendeur, région et montant.
Zone critères en A7:A8 avec uniquement le filtre Région=Nord.
| A | B | C | |
|---|---|---|---|
| 1 | Vendeur | Région | Montant |
| 2 | Alice | Nord | 1 500 |
| 3 | Bob | Nord | 2 300 |
| 4 | Claire | Sud | 1 800 |
| 5 | David | Nord | 950 |
| 6 | |||
| 7 | Critères : | ||
| 8 | Région | ||
| 9 | Nord |
=BDNB(A1:C5;"Montant";A7:A8)BDNB compte 3 ventes : Alice, Bob et David sont dans la région Nord et ont tous des montants numériques. Claire est exclue car elle est dans la région Sud.
Exemple 3 – Gestionnaire de stock : compter les produits sous le seuil d'alerte
Tu es gestionnaire de stock et tu veux savoir combien de produits ont une quantité en stock inférieure au seuil d'alerte pour anticiper les commandes.
Compte les produits avec Stock < 50 : Widget A (45) et Widget C (30).
| A | B | C | |
|---|---|---|---|
| 1 | Produit | Stock | Seuil |
| 2 | Widget A | 45 | 50 |
| 3 | Widget B | 120 | 100 |
| 4 | Widget C | 30 | 50 |
| 5 | Widget D | 80 | 100 |
| 6 | |||
| 7 | Critères : | ||
| 8 | Stock | ||
| 9 | <50 |
=BDNB(A1:C5;"Stock";A7:A8)Tu peux facilement modifier le critère dans la cellule A8 pour ajuster le seuil sans changer la formule. Pratique pour créer des tableaux de bord dynamiques.
Exemple 4 – Analyste : compter les transactions d'un client sur un mois précis
Tu es analyste de données et on te demande de compter combien de transactions le client "Entreprise ABC" a effectuées en janvier avec un montant supérieur à 500 €.
Critères multiples : Client=ABC ET Mois=Janvier ET Montant>500.
| A | B | C | |
|---|---|---|---|
| 1 | Client | Mois | Montant |
| 2 | ABC | Janvier | 750 |
| 3 | XYZ | Janvier | 450 |
| 4 | ABC | Janvier | 1 200 |
| 5 | ABC | Février | 800 |
| 6 | |||
| 7 | Critères : | ||
| 8 | Client | Mois | Montant |
| 9 | ABC | Janvier | >500 |
=BDNB(A1:C5;"Montant";A7:C8)BDNB trouve 2 transactions : la ligne 1 (750) et la ligne 3 (1200). La ligne 2 est exclue (mauvais client), la ligne 4 est exclue (mauvais mois). C'est la force de BDNB : combiner facilement 3+ critères.
Les erreurs fréquentes et comment les corriger
Résultat toujours 0 ou incorrect
Si BDNB retourne 0 alors que tu es certain d'avoir des données qui correspondent, c'est souvent parce que les noms de champs dans ta zone critères ne correspondent pas EXACTEMENT aux en-têtes de ta base de données.
Solution : Vérifie les espaces, majuscules et accents. "Montant" n'est pas la même chose que "montant" ou "Montant ". Le plus sûr est de copier-coller les en-têtes directement depuis ta base vers la zone critères.
BDNB ne compte pas les textes
BDNB ne compte que les valeurs numériques dans le champ spécifié. Si ton champ contient du texte (comme des codes produits), BDNB les ignore silencieusement.
Solution : Utilise BDNBVAL au lieu de BDNB si tu veux compter toutes les cellules non vides (nombres ET texte). Sinon, assure-toi que ton champ ne contient que des nombres.
Oublier les en-têtes dans la base de données
Si tu ne sélectionnes que les données sans la ligne d'en-têtes dans le paramètre base_de_données, BDNB ne peut pas identifier les colonnes et retourne une erreur #VALEUR! ou des résultats incohérents.
Solution : Inclus TOUJOURS la première ligne d'en-têtes dans ta plage base_de_données. Si ton tableau commence en A1, commence ta plage par A1, pas A2.
Confusion entre ET et OU dans les critères
Les critères sur la même ligne s'appliquent avec un ET logique. Les critères sur des lignes différentes s'appliquent avec un OU. Si tu places "Nord" en E2 et "Sud" en E3, BDNB compte les enregistrements de la région Nord OU Sud.
Solution : Pour un ET, mets tout sur la même ligne. Pour un OU, utilise plusieurs lignes. Pour compter Nord ET avec montant >1000, mets les deux critères sur la ligne 2. Pour compter Nord OU Sud, mets Nord en ligne 2 et Sud en ligne 3.
Astuce de débogage : Pour vérifier que tes critères fonctionnent, applique un filtre automatique sur ta base avec les mêmes conditions. Si le filtre ne montre rien, tes critères BDNB ne trouveront rien non plus. C'est un excellent moyen de tester avant de finaliser ta formule.
BDNB vs NB vs NB.SI vs NB.SI.ENS vs NBVAL
| Critère | BDNB | NB | NB.SI | NB.SI.ENS | NBVAL |
|---|---|---|---|---|---|
| Compte les nombres | ✅ Oui | ✅ Oui | ✅ Selon critère | ✅ Selon critères | ❌ Non (tout) |
| Compte le texte | ❌ Non | ❌ Non | ✅ Selon critère | ✅ Selon critères | ✅ Oui |
| Critères multiples | ✅ Illimités | ❌ Aucun | ⚠️ 1 seul | ✅ Jusqu'à 127 | ❌ Aucun |
| Opérateur OU | ✅ Oui | ❌ Non | ❌ Non | ❌ Non | ❌ Non |
| Critères visibles | ✅ Zone séparée | ➖ N/A | ❌ Dans formule | ❌ Dans formule | ➖ N/A |
| Facilité d'utilisation | ⭐⭐ Complexe | ⭐⭐⭐ Simple | ⭐⭐⭐ Simple | ⭐⭐ Moyenne | ⭐⭐⭐ Simple |
| Cas d'usage idéal | Bases structurées complexes | Comptage simple | 1 critère simple | Plusieurs critères ET | Compter cellules pleines |
Quand utiliser BDNB : Choisis BDNB quand tu as une base de données bien structurée avec en-têtes et que tu veux combiner plusieurs critères avec des opérateurs ET/OU. L'avantage majeur est que tes critères sont visibles et modifiables sans toucher la formule.
Quand utiliser NB.SI.ENS à la place : Si tu n'as besoin que de critères ET (pas de OU) et que tu préfères une formule plus compacte, NB.SI.ENS est plus simple. Par exemple =NB.SI.ENS(C:C;"Nord";D:D;">1000") est plus rapide à écrire que de créer une zone critères.
Astuce performance : Sur de très grandes bases (50 000+ lignes), BDNB peut être plus performante que NB.SI.ENS car elle utilise un mécanisme d'indexation interne. Mais pour la plupart des cas d'usage quotidiens, la différence de vitesse est négligeable.
Questions fréquentes
Quelle différence entre BDNB et BDNBVAL ?
BDNB ne compte que les cellules contenant des nombres dans le champ spécifié. BDNBVAL compte toutes les cellules non vides (nombres ET texte). Si tu veux compter les clients ayant effectué un achat (même si le montant est du texte), utilise BDNBVAL.
Peut-on utiliser des critères avec caractères génériques ?
Oui ! Tu peux utiliser * (plusieurs caractères) et ? (un seul caractère) dans tes critères. Par exemple, dans la zone critères, mets 'Paris*' pour compter tous les enregistrements commençant par Paris (Paris 1er, Paris 15e, etc.).
Pourquoi BDNB retourne 0 alors que j'ai des données ?
Vérifie que : 1) Le champ spécifié contient bien des nombres (pas du texte), 2) Les en-têtes de ta zone critères correspondent EXACTEMENT aux en-têtes de ta base de données, 3) La plage de la base inclut bien les en-têtes.
Comment compter avec plusieurs critères sur la même colonne ?
Place les critères sur des lignes différentes dans ta zone critères. Par exemple, pour compter les ventes >1000 OU <100, mets '>1000' en E2 et '<100' en E3. BDNB appliquera un OU entre les lignes.
BDNB est-elle plus performante que NB.SI.ENS ?
Sur de grandes bases de données (>10 000 lignes), BDNB peut être légèrement plus rapide. Mais NB.SI.ENS est souvent plus simple à écrire et maintenir. Utilise BDNB quand tu travailles déjà avec une structure de base de données bien définie.
Les fonctions similaires à BDNB
NB
Compter les nombres dans une plage
NB.SI
Compter selon un critère
NB.SI.ENS
Compter selon plusieurs critères
NBVAL
Compter les cellules non vides
BDNBVAL
Compter les valeurs dans une base
BDSOMME
Additionner selon critères BD
BDMOYENNE
Moyenne selon critères BD
BDMAX
Valeur max dans une base
BDMIN
Valeur min dans une base
Deviens un pro d'Excel
Tu maîtrises maintenant BDNB ! Rejoins Le Dojo Club pour découvrir toutes les fonctions de base de données et devenir un expert en analyse de données avec Excel.
Essayer pendant 30 jours