Aller au contenu principal

Qu'est-ce que la fonction BDNB ?

Définition
La fonction BDNB compte les cellules numériques d'une colonne dans une base de données structurée (avec en-têtes) qui correspondent aux critères définis dans une plage séparée. Elle ignore les cellules vides et les valeurs texte dans le champ spécifié.

Tu sors BDNB (DCOUNT en anglais) dès que NB.SI et NB.SI.ENS ne suffisent plus : ta condition doit croiser un ET et un OU dans la même formule, ou tu veux une zone de critères visible que tes collègues peuvent modifier sans rouvrir la formule.

Cette fonction fait partie de la famille BD (Base de Données) d'Excel, conçue 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 te permet de compter rapidement combien d'enregistrements correspondent à tes critères métier, même les plus complexes, sans toucher à la formule elle-même.

Syntaxe

Clique sur un argument pour aller à son explication.

La zone critères doit obligatoirement contenir les en-têtes dans sa première ligne, avec les valeurs de filtrage dans les lignes suivantes. Les en-têtes doivent correspondre exactement (casse incluse) à ceux de base_de_données.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction BDNB

Les trois arguments se suivent toujours dans le même ordre et aucun n'est facultatif : d'abord la plage entière de ton tableau (en-têtes compris), puis la colonne où compter, enfin la zone de critères à part. C'est ce deuxième argument, le champ, qui t'offre le plus de souplesse : tu peux le désigner par son nom entre guillemets, par son numéro de colonne, ou par une référence de cellule.

1

base_de_données

: 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. Excel utilise la première ligne comme référence pour identifier les champs.

Sans les en-têtes dans cette plage, BDNB ne peut pas fonctionner correctement et renvoie des résultats incorrects ou une erreur #VALEUR!.

2

champ

: la colonne dans laquelle BDNB va compter les valeurs numériques

Tu peux l'indiquer de trois façons : le nom du champ entre guillemets comme "Montant", un numéro de colonne comme 3 (pour la 3e colonne de la base), ou une référence de cellule contenant le nom.

Le nom entre guillemets est le plus lisible et le plus fiable car il ne dépend pas de la position des colonnes dans le tableau.

3

critères

: 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 de filtre.

Les critères sur la même ligne s'appliquent avec un ET logique (toutes les conditions doivent être vraies). Les critères sur des lignes différentes s'appliquent avec un OU logique (au moins une ligne doit correspondre).

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment compter le nombre de lignes selon un critère avec la fonction BDNB

On te demande combien de ventes la région Nord a signées ce trimestre, et la réponse doit tenir dans une phrase. Tes quatorze vendeurs sont listés avec leur région et le montant qu'ils ont réalisé, mais tu veux ce compte sans trier le tableau ni poser un filtre que quelqu'un désactivera demain. La fonction BDNB lit une petite zone de critères posée à côté du tableau et te sort le compte des lignes qui y répondent.

Les étapes
  1. 1
    Dans une cellule, écris =BDNB(.
  2. 2
    En 1er argument : sélectionne le tableau complet avec sa ligne de titres, A1:C15. Inclure les titres n'est pas une maladresse de sélection mais une exigence de la fonction. C'est dans cette première ligne qu'elle apprend que la colonne B s'appelle Région et la colonne C Ventes.
  3. 3
    En 2ᵉ argument : écris le nom de la colonne à compter entre guillemets, "Ventes". Le libellé doit être orthographié exactement comme l'en-tête de la colonne C. La fonction ne comptant que les nombres, ce nom doit toujours viser une colonne numérique.
  4. 4
    En 3ᵉ argument : sélectionne la zone de critères, E1:E2. Tu l'as préparée à côté du tableau, avec l'en-tête Région recopié en E1 et la valeur Nord juste en dessous. Ce sont ces deux cellules qui décident des lignes retenues, et tu y changes de région sans jamais rouvrir la formule.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=BDNB(A1:C15; "Ventes"; E1:E2)
Explication
La fonction lit la zone de critères, ne garde que les lignes dont la région vaut Nord, puis compte celles qui portent bien un nombre dans la colonne Ventes : Marie, Sophie, Emma, Hugo, Lina et Alice, soit 6. Les montants eux-mêmes n'entrent jamais dans le calcul, seule leur présence est comptée. Remplace Nord par Est en E2 et le compte se met à jour tout seul.
Exemple 2

Comment compter le nombre de lignes en croisant deux critères avec la fonction BDNB

La short-list part ce soir et on attend de toi un chiffre : combien de candidats du pôle IT ont décroché au moins 15 au test technique. Chaque candidat est saisi avec son pôle et sa note, et deux conditions doivent tomber en même temps sur la même ligne, le bon pôle et la bonne note. La fonction BDNB traite les deux d'un seul coup, à condition de les poser côte à côte dans la zone de critères.

Les étapes
  1. 1
    Dans une cellule, écris =BDNB(.
  2. 2
    En 1er argument : sélectionne le tableau des candidats avec sa ligne de titres, A1:C7. Les trois titres Candidat, Pôle et Note forment le vocabulaire que la zone de critères devra reprendre mot pour mot. Un titre mal recopié d'un côté ou de l'autre, et le compte retombe à 0 sans message d'erreur.
  3. 3
    En 2ᵉ argument : écris le nom de la colonne à compter entre guillemets, "Note". Rien n'interdit que cette colonne serve aussi de filtre juste après, car la fonction accepte très bien de compter celle sur laquelle elle filtre.
  4. 4
    En 3ᵉ argument : sélectionne la zone de critères, E1:F2. Elle tient cette fois sur deux colonnes, avec les titres Pôle et Note recopiés en E1 et F1, puis IT et >=15 écrits juste en dessous. Réunir les deux valeurs sur la même ligne est ce qui les rend indissociables, et >=15 rappelle qu'un critère peut être une comparaison plutôt qu'une valeur exacte.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=BDNB(A1:C7; "Note"; E1:F2)
Explication
Deux critères posés côte à côte sur une même ligne de la zone valent un ET : seules les lignes qui sont à la fois du pôle IT et notées >=15 franchissent le filtre, soit Léa (17) et Adam (15), donc 2. Adam passe de justesse parce que >= retient la borne elle-même (avec >15, il serait écarté). Camille est bien notée 18, mais son pôle ne correspond pas.
Exemple 3

Comment compter le nombre de lignes selon plusieurs critères en OU avec la fonction BDNB

Le bilan de la campagne se joue vendredi et on veut savoir combien de commandes sont arrivées par les canaux à distance, le web et le téléphone réunis. Tes commandes sont listées avec le canal qui les a apportées et leur montant, et tu refuses d'écrire deux formules puis d'additionner leurs résultats à la main. La fonction BDNB gère ce OU nativement : il suffit d'empiler les deux canaux dans la zone de critères.

Les étapes
  1. 1
    Dans une cellule, écris =BDNB(.
  2. 2
    En 1er argument : sélectionne le tableau des commandes avec sa ligne de titres, A1:C7. La fonction y lit les noms Commande, Canal et Montant, qui sont les seuls repères dont elle dispose pour retrouver une colonne.
  3. 3
    En 2ᵉ argument : écris le nom de la colonne à compter entre guillemets, "Montant". Tu ne cherches pas un total, mais la fonction a besoin d'une colonne de nombres et Montant est la seule du tableau. Viser la colonne Canal, qui ne contient que du texte, te renverrait 0 sans message d'erreur.
  4. 4
    En 3ᵉ argument : sélectionne la zone de critères, E1:E3. L'en-tête Canal est recopié en E1, et les deux canaux à suivre s'empilent en dessous, Web puis Téléphone. Le second n'existe pour la fonction que si la référence descend jusqu'à E3, sans quoi la zone ne compte que les commandes du web.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=BDNB(A1:C7; "Montant"; E1:E3)
Explication
Deux valeurs empilées sous le même en-tête, sur deux lignes différentes, valent un OU : la fonction garde les commandes du web et celles du téléphone, puis compte les montants trouvés sur ces lignes (CMD-2041, CMD-2043, CMD-2044 et CMD-2046), soit 4. Pour suivre un troisième canal, tu écris son nom en E4 et tu étends la zone d'une ligne.
Vrai ou faux ?
« BDNB compte tout ce qui est renseigné dans la colonne. » Faux. Elle ne compte que les vraies valeurs numériques et ignore en silence un nombre stocké en texte (le petit triangle vert dans le coin). Pour compter aussi le texte, c'est BDNBVAL qu'il te faut.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction BDNB

Avec BDNB, les ennuis viennent presque toujours de deux endroits : la zone de critères qui ne dialogue pas avec ta base, ou la nature des données comptées. Un en-tête de critère qui diffère d'un espace ou d'un accent renvoie 0, un nombre stocké en texte passe inaperçu, et oublier la ligne d'en-têtes dans la plage déclenche un #VALEUR!.

Le dernier piège est plus sournois : ranger tes conditions sur une même ligne ou sur des lignes séparées change tout, puisque l'une signifie ET et l'autre OU.

BDNB retourne 0 alors que des données correspondent

Les noms de champs dans la zone critères ne correspondent pas exactement aux en-têtes de la base de données. Un espace invisible, une majuscule différente ou un accent manquant suffit à faire rater la correspondance.

Solution : Copie-colle directement les en-têtes depuis ta base vers la zone critères plutôt que de les retaper. C'est le moyen le plus sûr d'éviter les erreurs de casse, d'espace ou d'accent.

BDNB ne compte pas des valeurs qui existent pourtant

BDNB ne compte que les valeurs numériques dans le champ spécifié. Si ton champ contient des nombres stockés en format texte (triangle vert dans le coin de la cellule), BDNB les ignore silencieusement.

Solution : Convertis tes nombres texte en vrais nombres : sélectionne la colonne, clique sur le triangle d'avertissement jaune et choisis "Convertir en nombre". Ou utilise BDNBVAL si tu veux compter toutes les cellules non vides, nombres et texte confondus.

Oublier les en-têtes dans la plage base_de_données

Si tu sélectionnes uniquement 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 renvoie une erreur #VALEUR! ou des résultats incohérents.

Solution : Commence toujours ta plage base_de_données depuis la ligne d'en-têtes. Si ton tableau commence en A1, ta plage doit commencer par A1, jamais A2.

Confusion entre ET et OU dans la zone 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. Mettre deux valeurs sur la même ligne quand tu voulais un OU, ou les séparer sur deux lignes quand tu voulais un ET, donne un résultat incorrect.

Solution : Pour un ET (les deux conditions doivent être vraies), mets tout sur la même ligne. Pour un OU (l'une ou l'autre condition est suffisante), utilise plusieurs lignes dans la zone critères.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

BDNB vs NB.SI vs NB.SI.ENS vs NBVAL

BDNB est unique dans sa capacité à gérer des critères OU avec une zone visible et modifiable. NB.SI.ENS est plus simple pour les critères ET uniquement. Utilise BDNB quand tu as besoin du OU logique ou d'une zone critères externe facilement modifiable.

CritèreBDNBNB.SINB.SI.ENSNBVAL
Critères multiplesIllimités (ET et OU)1 seulJusqu'à 127 (ET uniquement)Aucun
Opérateur OUOui (lignes distinctes dans les critères)NonNonNon
Compte les textesNon (nombres uniquement)Oui (selon critère)Oui (selon critères)Oui (tout)
Critères visiblesOui (zone séparée)Non (dans la formule)Non (dans la formule)N/A
Facilité d'utilisationPlus complexe à mettre en placeTrès simpleMoyenneTrès simple
Cas d'usage idéalBases structurées avec critères OU ou critères interactifsUn critère simplePlusieurs critères ETCompter les cellules non vides
Le conseil du pro
Pour un seuil que tu ajustes souvent, ne l'écris pas en dur dans la zone de critères. Mets la valeur dans une cellule à part et compose le critère avec « "<"&G1 ». Tu changes le seuil à un seul endroit et toutes tes formules BDNB suivent sans que tu les rouvres.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec BDNB

1Astuce

Rendre ta zone critères interactive avec des listes déroulantes

Place ta zone critères sur une ligne au-dessus du tableau ou sur une feuille dédiée, et ajoute des listes déroulantes (Données > Validation) sur les cellules de valeurs. Tes utilisateurs sélectionnent un critère dans la liste et =BDNB(base;champ;critères) se recalcule instantanément, sans que personne ne touche à la formule.
C'est le meilleur moyen de construire un tableau de bord interactif avec des filtres visibles.

2Astuce

Combiner ET et OU sur plusieurs colonnes

Pour compter les transactions de la région Nord OU Sud avec un montant supérieur à 1 000 € dans les deux cas, crée deux lignes dans ta zone critères : la ligne 2 contient Nord + >1000, la ligne 3 contient Sud + >1000. =BDNB(base;"Montant";critères) applique un ET sur chaque ligne et un OU entre les lignes.
Cette combinaison ET/OU est impossible avec NB.SI.ENS et fait toute la valeur de BDNB.

FAQ

Questions fréquentes

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 renseigné un commentaire (valeur texte), utilise BDNBVAL. Si tu veux compter les lignes avec un montant saisi (nombre), utilise BDNB.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction BDNB : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir