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
| Fonction | Nombre | Texte | VRAI/FAUX | Vide réel | Chaîne vide "" | Erreur |
|---|---|---|---|---|---|---|
| NB | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| NBVAL | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| NB.VIDE | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ESTVIDE | FAUX | FAUX | FAUX | VRAI | FAUX | FAUX |
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