NBVAL, ESTVIDE et NB dans Excel : compter les cellules

Excel propose quatre fonctions pour compter des cellules selon leur contenu : NB, NBVAL, NB.VIDE et ESTVIDE. Elles paraissent proches mais ont des comportements très différents face aux nombres, textes et cellules vides — confondre NB et NBVAL est une source d'erreurs fréquente.

🔢 Démo — modifiez les 10 cellules et observez les comptages

Laissez une cellule vide, entrez des nombres, du texte… NB, NBVAL et NB.VIDE réagissent différemment.

NB — compter uniquement les nombres

=NB(plage)

NB compte les cellules contenant des valeurs numériques (entiers, décimaux, dates, heures — qui sont des nombres en interne). Il ignore les textes, les booléens VRAI/FAUX et les cellules vides.

Plage : 42 | "Bonjour" | VRAI | (vide) | 3,14
=NB(plage) → 2  (seulement 42 et 3,14)

NBVAL — compter tout ce qui n'est pas vide

=NBVAL(plage)

NBVAL compte toutes les cellules non vides : nombres, textes, booléens, erreurs. Une cellule avec une chaîne vide ="" est comptée (elle contient une chaîne, même vide).

Plage : 42 | "Bonjour" | VRAI | (vide) | ""
=NBVAL(plage) → 4  (pas la cellule vraiment vide)
Le piège classique : une cellule qui affiche "rien" mais contient une formule =SI(A1="";"";A1) est comptée par NBVAL car elle contient une valeur (chaîne vide). Utilisez NB.VIDE pour identifier les vraies cellules vides vs les fausses.

NB.VIDE — compter les cellules vides

=NB.VIDE(plage)

NB.VIDE compte uniquement les cellules totalement vides (aucun contenu, aucune formule). Une cellule avec ="" N'EST PAS vide pour NB.VIDE.

=NBVAL(A2:A100) + NB.VIDE(A2:A100)
→ doit toujours égaler 99 (total des cellules)

Bonne pratique : cette vérification confirme que NBVAL et NB.VIDE couvrent bien l'ensemble de la plage sans se chevaucher.

ESTVIDE — tester une cellule individuelle

=ESTVIDE(cellule)

Renvoie VRAI si la cellule est totalement vide, FAUX sinon. S'utilise dans des formules conditionnelles :

=SI(ESTVIDE(B2); "Manquant"; B2)
→ affiche "Manquant" si B2 est vide, sinon sa valeur

=NB.SI.ENS(A2:A100; ESTVIDE(A2:A100))  ✗ incorrect
=NB.VIDE(A2:A100)                       ✓ correct pour compter les vides

Tableau comparatif

FonctionNombreTexteVRAI/FAUXVide réelChaîne vide ""Erreur
NB
NBVAL
NB.VIDE
ESTVIDEFAUXFAUXFAUXVRAIFAUXFAUX

Combinaisons utiles

Taux de remplissage d'une colonne :
=NBVAL(A2:A100)/99

Nombre de lignes manquantes dans une liste :
=NB.VIDE(B2:B100)

Vérifier qu'une ligne est complète (toutes les colonnes remplies) :
=NBVAL(A2:F2)=6

Compter les lignes avec un nombre ET un texte :
=SOMMEPROD((NB(A2:A100)>0)*(NBVAL(B2:B100)>0))

NB.SI / NB.SI.ENS → Gérer les erreurs Supprimer les lignes vides