Base de donnéesIntermédiaire

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

1

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.

2

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é.

3

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.

ABC
1NomDépartementSalaire
2MartinCommercial3 200
3DuboisIT2 800
4BernardRH2 600
5ThomasIT4 000
6
7Critères :
8SalaireSalaire
9>2500<3500
Formule :=BDNB(A1:C5;"Salaire";A7:B8)
Résultat :3

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.

ABC
1VendeurRégionMontant
2AliceNord1 500
3BobNord2 300
4ClaireSud1 800
5DavidNord950
6
7Critères :
8Région
9Nord
Formule :=BDNB(A1:C5;"Montant";A7:A8)
Résultat :3

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).

ABC
1ProduitStockSeuil
2Widget A4550
3Widget B120100
4Widget C3050
5Widget D80100
6
7Critères :
8Stock
9<50
Formule :=BDNB(A1:C5;"Stock";A7:A8)
Résultat :2

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&gt;500.

ABC
1ClientMoisMontant
2ABCJanvier750
3XYZJanvier450
4ABCJanvier1 200
5ABCFévrier800
6
7Critères :
8ClientMoisMontant
9ABCJanvier>500
Formule :=BDNB(A1:C5;"Montant";A7:C8)
Résultat :2

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èreBDNBNBNB.SINB.SI.ENSNBVAL
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éalBases structurées complexesComptage simple1 critère simplePlusieurs critères ETCompter 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

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