Qu'est-ce que la fonction NB ?
Tu sors NB quand tu veux fiabiliser un calcul avant de le lancer : elle te dit combien de cellules contiennent vraiment un nombre, ce qui t'évite de baser une moyenne ou une somme sur un total de lignes qui inclut des cases vides ou du texte glissé par erreur.
Tu vas l'utiliser pour vérifier la complétude de tes données, compter combien de clients ont effectué un achat, ou savoir combien de mois ont des chiffres d'affaires enregistrés dans un tableau annuel. C'est souvent le premier outil pour détecter les trous dans une saisie avant de lancer un traitement.
Syntaxe
Clique sur un argument pour aller à son explication.
NB peut accepter jusqu'à 255 arguments. Les valeurs logiques VRAI/FAUX passées directement (ex. =NB(VRAI)) sont comptées comme 1, mais si elles figurent dans une plage (=NB(A1:A10)), elles sont ignorées. Ce comportement asymétrique surprend souvent.

Comprendre chaque paramètre de la fonction NB
NB n'a besoin que d'une chose pour fonctionner : valeur1, ta première plage à scanner. Tout le reste (valeur2, valeur3…) est facultatif et sert à empiler des plages non adjacentes dans le même calcul, par exemple =NB(A1:A10; C1:C10) pour sauter une colonne de catégories au milieu. Tu peux ainsi cumuler jusqu'à 255 zones d'un coup.
valeur1
: c'est la première plage ou valeur à analyserÇa peut être une référence de cellule comme A1, une plage comme A1:A100, ou même un nombre directement. NB va compter combien de cellules dans cette plage contiennent des nombres, dates ou heures. C'est le seul paramètre obligatoire.
valeur2, valeur3, ...
: tu peux ajouter jusqu'à 254 arguments supplémentaires(facultatif)C'est utile quand tu veux compter les nombres dans plusieurs plages non adjacentes. Par exemple, =NB(A1:A10; C1:C10; E5) compte tous les nombres dans A1:A10, puis dans C1:C10, puis vérifie si E5 contient un nombre.
Les plages non contiguës te permettent d'exclure des colonnes intermédiaires (en-têtes, catégories textuelles) tout en restant dans une seule formule.

Exemples pratiques pas à pas
Comment compter les cellules qui contiennent un nombre avec la fonction NB
La relance des impayés part demain matin et le fichier des factures du trimestre s'étale sur 18 lignes, remplies au fil de l'eau par plusieurs personnes. Quelques montants manquent encore, d'autres ont été remplacés par un « à venir ». Avant de lancer la relance, tu veux savoir combien de factures sont réellement chiffrées : NB parcourt la colonne Montant HT et ne retient que les cellules qui contiennent un nombre.
- 1Dans une cellule, écris
=NB(. - 2En 1er argument : sélectionne la colonne à examiner, celle des montants HT
D2:D19. Elle couvre les factures de la première à la dernière ligne du tableau, et NB la parcourt cellule par cellule sans jamais regarder ailleurs. Seules les cellules qui portent un nombre font monter le compteur : les cases restées vides comme les mentions écrites en toutes lettres sont laissées de côté. - 3Ferme la parenthèse et appuie sur Entrée.
=NB(D2:D19)13 est le nombre de factures réellement chiffrées, pas le nombre de lignes du tableau.Comment compter les nombres de deux plages séparées avec la fonction NB
Le point hebdo tombe lundi et deux boutiques déposent leurs relevés dans le même fichier, séparées par une colonne d'objectifs qui n'a rien à faire dans le décompte. Entre les semaines de fermeture et les relevés jamais transmis, tu ne sais pas sur combien de chiffres réels tu vas commenter. NB accepte plusieurs plages d'un coup et additionne les nombres trouvés dans chacune.
- 1Dans une cellule, écris
=NB(. - 2En 1er argument : sélectionne la première zone à compter, les six relevés de la boutique Nord
B2:B7. NB y trouve 4 nombres, puisque la semaine restée vide et celle notée « fermée » ne sont pas des valeurs numériques. - 3En 2ᵉ argument : sélectionne la seconde zone à compter, les relevés de la boutique Sud
D2:D7. NB y trouve 4 nombres de plus. Le point-virgule qui sépare les deux plages te permet au passage de sauter la colonneObjectifposée entre elles, qui n'entre jamais dans le décompte. - 4Ferme la parenthèse et appuie sur Entrée.
=NB(B2:B7;D2:D7)8. La colonne Objectif, pourtant coincée entre les deux, n'entre jamais dans le calcul puisqu'elle n'est citée dans aucun des arguments. Les semaines vides et la mention « fermée » sont ignorées, elles ne sont pas des nombres.Comment afficher le taux de remplissage d'une colonne en combinant LIGNES et la fonction NB
Le tableau de suivi du chiffre d'affaires est partagé entre plusieurs personnes et personne ne sait où en est la saisie avant la clôture. Douze lignes, une par mois, mais seule une partie porte un montant. Tu veux une jauge en haut du fichier qui dise d'un coup d'œil où en est le remplissage : NB compte les montants déjà saisis pendant que LIGNES donne le total de lignes à remplir.
- 1Dans une cellule, écris
=NB(. - 2En 1er argument : sélectionne la colonne des montants déjà saisis,
B2:B13. Elle couvre les douze lignes du suivi, une par mois, et NB n'y retient que les cellules qui portent un chiffre d'affaires, soit4pour l'instant. Les mois encore vides sont ignorés, et c'est exactement ce que tu veux puisqu'ils représentent la saisie qui reste à faire. - 3Ferme la parenthèse, complète par
/LIGNES(B2:B13), puis appuie sur Entrée. Applique ensuite le format Pourcentage à la cellule pour lire33 %plutôt que le ratio brut0,33.
=NB(B2:B13)/LIGNES(B2:B13)0,33 que le format Pourcentage affiche en 33 %. Le tableau est rempli au tiers. Le chiffre se met à jour tout seul : chaque nouveau montant saisi fait grimper NB d'une unité pendant que le dénominateur, lui, ne bouge pas.
Les erreurs fréquentes avec la fonction NB
Neuf fois sur dix, le souci tient à une chose : NB ne voit que les vrais nombres. Lance-la sur une colonne de noms ou de catégories et elle te répond 0, parce qu'elle ignore tout ce qui est du texte. Le piège jumeau, c'est le nombre qui s'affiche mais qui est stocké en texte après un import CSV : il a beau ressembler à un chiffre, NB ne le compte pas.
Confondre NB et NBVAL sur une colonne de texte
C'est l'erreur numéro 1. Sur une liste de noms ou de catégories, =NB(A1:A10) retourne 0 car il n'y a que du texte. NB ignore intégralement les valeurs textuelles, même si elles ressemblent à des chiffres.
Solution : Demande-toi : "est-ce que je veux compter UNIQUEMENT les nombres, ou tout ce qui est rempli ?" Si c'est la deuxième option, utilise =NBVAL(A1:A10) à la place de NB.
NB retourne 0 alors que des nombres sont visibles à l'écran
Après un import CSV ou un copier-coller depuis le web, les nombres peuvent être stockés comme du texte. NB les ignore complètement. Indice visuel : les vrais nombres s'alignent à droite, le texte s'aligne à gauche.
Solution : Sélectionne les cellules suspectes et clique sur l'icône d'avertissement jaune pour les convertir. Ou utilise =CNUM(A1) pour forcer la conversion. Une fois converties en nombres réels, NB les comptabilisera.
Résultat inattendu à cause des dates dans la plage
Les dates sont des nombres dans Excel (nombre de jours depuis le 1er janvier 1900). Si une colonne mélange des montants et des dates, NB les compte tous. Cela peut gonfler artificiellement le décompte.
Solution : Sépare tes données par type dans des colonnes différentes. Ou utilise NB.SI pour compter uniquement les valeurs qui dépassent un certain seuil, ce qui exclura naturellement les petits numéros de dates anciennes.

NB vs NBVAL vs NB.VIDE vs NB.SI
Prends NB quand tu veux strictement les valeurs numériques et rien d'autre. Si tu cherches à compter tout ce qui est rempli, texte compris, bascule sur NBVAL ; pour repérer les cellules encore vides, c'est NB.VIDE ; et dès qu'une condition entre en jeu (montant supérieur à un seuil, statut précis), seule NB.SI sait filtrer.
| Critère | NB | NBVAL | NB.VIDE | NB.SI |
|---|---|---|---|---|
| Compte les nombres | Oui | Oui | Non | Selon critère |
| Compte le texte | Non | Oui | Non | Selon critère |
| Compte les cellules vides | Non | Non | Oui | Si critère "" |
| Compte les dates | Oui | Oui | Non | Selon critère |
| Critères conditionnels | Non | Non | Non | Oui |
| Cas d'usage principal | Compter les valeurs numériques | Compter tout ce qui est rempli | Trouver les trous dans les données | Compter selon une condition |
Questions fréquentes
NB compte uniquement les cellules contenant des nombres (y compris dates et heures). NBVAL compte toutes les cellules non vides, y compris le texte. Si ta cellule contient "Bonjour", NB l'ignore mais NBVAL la compte.
Oui. Dans Excel, les dates et heures sont stockées comme des nombres (le nombre de jours depuis le 1er janvier 1900). Donc =NB(A1) où A1 contient 15/03/2024 retourne 1. C'est pratique pour compter combien de rendez-vous sont programmés dans un agenda.
Ça dépend. Si VRAI/FAUX est dans une plage comme =NB(A1:A10), ils sont ignorés. Mais si tu écris directement =NB(VRAI), ça retourne 1. Dans 99 % des cas pratiques, tu utiliseras des plages, donc les valeurs logiques seront ignorées.
C'est souvent parce que tes nombres sont stockés en format texte, par exemple après un import CSV. Vérifie l'alignement : les vrais nombres s'alignent à droite, le texte à gauche. Utilise =CNUM() pour convertir le texte en nombre.
NB compte le résultat de la formule, pas la formule elle-même. Si A1 contient =2+2, alors =NB(A1) retourne 1 car le résultat est 4. Par contre, si la formule retourne du texte comme =SI(A1>10;"Oui";"Non"), NB l'ignore.
Pour aller plus loin
Continue sur ta lancée après la fonction NB : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



