NBVAL Excel : compter les cellules non vides + 7 exercices corrigés
- il y a 8 heures
- 10 min de lecture
La fonction NBVAL sur Excel compte le nombre de cellules non vides d'une plage, quel que soit leur contenu : texte, nombre, date, valeur logique ou résultat de formule. Sa syntaxe tient en un seul argument obligatoire : =NBVAL(A1:A100). Elle se distingue de NB, qui ne compte que les nombres, et de NB.VIDE, qui compte les cellules vides.
Dans ce guide, nos formateurs vous montrent la syntaxe exacte, le tableau de décision entre les cinq fonctions de comptage, les deux pièges qui faussent le plus souvent les résultats en entreprise, et un classeur de 7 exercices corrigés à télécharger gratuitement. Chaque formule d'exemple est décomposée argument par argument.
Sommaire
Télécharger le classeur d'exercices corrigés NB VAL

Le classeur reprend les sept exercices présentés ci-dessus, classés du plus simple au plus difficile, sur des données RH, commerciales, comptables, marketing, financières et de gestion de projet.
Pour aller plus loin, retrouvez l'ensemble de nos exercices Excel corrigés à télécharger, et situez votre niveau réel avec notre test Excel gratuit avec correction en ligne.
À quoi sert la fonction NBVAL sur Excel ?
NBVAL signifie « nombre de valeurs ». Elle répond à une question très concrète : combien de cellules de cette plage contiennent quelque chose ?
C'est la fonction que l'on utilise pour connaître un effectif, un nombre de lignes réellement saisies, ou le taux de remplissage d'un fichier avant de l'exploiter.
Son intérêt par rapport à un comptage manuel : le résultat se met à jour tout seul dès qu'une ligne est ajoutée ou supprimée.
Syntaxe de la fonction NBVAL
=NBVAL(valeur1 ; [valeur2] ; [valeur3] ; …)NBVAL(...) : compte les cellules non vides d'une ou de plusieurs plages.
valeur1 : obligatoire. La première plage ou la première valeur à examiner.
valeur2 : facultatif. Une deuxième plage, ajoutée au comptage.
valeur3 : facultatif, et ainsi de suite jusqu'à 255 arguments.
Les plages n'ont pas besoin d'être côte à côte, ni de faire la même taille.
NBVAL compte : le texte, les nombres, les dates, les valeurs logiques VRAI et FAUX, les valeurs d'erreur comme #N/A, et les cellules contenant une formule — même si cette formule renvoie du texte vide.
NBVAL ne compte pas : uniquement les cellules réellement vides, celles où personne n'a jamais rien saisi.
Exercice 1 : Donnée RH : ancienneté des effectifs

Objectif : connaître l'effectif présent au 1er juillet 2026 à partir d'un tableau où seule la colonne « Date de sortie » distingue les salariés partis. Un NBVAL, puis son miroir NB.VIDE, suffisent.
=NBVAL(D6:D15)
NBVAL(...) : compte le nombre de cellules non vides dans une plage.
D6:D15 : plage de cellules analysée
NBVAL compte les textes, nombres, dates et formules, mais ignore uniquement les cellules réellement vides.
NB, NBVAL, NB.VIDE : quelle fonction pour quel comptage ?
Les cinq fonctions commencent par NB, et pourtant elles ne comptent pas la même chose. Voici le tableau de décision.
Fonction | Ce qu'elle compte | Exemple |
|---|---|---|
NBVAL | Tout ce qui est rempli : texte, nombres, dates, erreurs, formules | =NBVAL(B2:B50) |
NB | Uniquement les nombres et les dates. Le texte est ignoré | =NB(C2:C50) |
NB.VIDE | Ce qui manque. La fonction miroir de NBVAL | =NB.VIDE(C2:C50) |
NB.SI | Les cellules répondant à un critère unique | =NB.SI(D2:D50;"Finance") |
NB.SI.ENS | Les cellules répondant à plusieurs critères simultanés | =NB.SI.ENS(D2:D50;"Finance";E2:E50;">1000") |
Le contrôle à retenir : sur une même plage, NBVAL + NB.VIDE est toujours égal au nombre total de cellules de la plage. Si l'égalité tombe en défaut, c'est qu'une cellule contient un espace ou une formule renvoyant du vide — le piège traité plus bas. Pour tester une cellule isolée plutôt qu'une plage, c'est la fonction ESTVIDE qu'il faut utiliser.
Exercice 2 : Donnée Commercial : suivi des commandes du trimestre
Objectif : distinguer le nombre de lignes enregistrées du nombre de commandes réellement chiffrées. La colonne Référence est toujours remplie, la colonne Montant non : NBVAL et NB donnent deux résultats différents, et l'écart correspond exactement aux devis en attente.
Exercice 3 : Donnée Comptable : suivi des règlements fournisseurs
Objectif : calculer un taux de règlement en divisant un NBVAL par un autre NBVAL. Le réflexe à prendre : ne jamais écrire le dénominateur en dur, pour que le taux reste juste quand le tableau s'allonge.
NBVAL en anglais : la fonction COUNTA
Sur une version anglaise d'Excel, ou dans un fichier reçu d'une filiale étrangère, NBVAL s'écrit COUNTA. Excel traduit automatiquement les noms de fonctions à l'ouverture : vous n'avez rien à convertir, seul l'affichage change selon la langue de votre logiciel.
Les équivalences de toute la famille :
NBVAL = COUNTA
NB = COUNT
NB.VIDE = COUNTBLANK
NB.SI = COUNTIF
NB.SI.ENS = COUNTIFS
Attention à un détail qui fait perdre du temps : dans une version anglaise, le séparateur d'arguments est la virgule et non le point-virgule. =COUNTA(A1:A10,C1:C10) devient =NBVAL(A1:A10;C1:C10) en français.
NBVAL SI : pourquoi cette fonction n'existe pas
C'est la recherche la plus fréquente autour de NBVAL, et la réponse tient en une phrase : la fonction NBVAL SI n'existe pas dans Excel. Ni sous la forme NBVAL.SI, que l'on croise pourtant dans plusieurs tutoriels. NBVAL ne sait pas prendre de critère : dès qu'un « si » apparaît dans votre besoin, vous changez de fonction.
Étape 1 : un seul critère, la fonction NB.SI
=NB.SI(plage ; critère)NB.SI(...) : compte les cellules d'une plage qui répondent à une condition unique.
plage : la plage de cellules à examiner.
critère : la condition à remplir : texte entre guillemets, nombre, comparaison comme ">1000", ou référence de cellule.
Une référence de cellule est presque toujours préférable au texte en dur : le tableau devient paramétrable sans toucher aux formules.
Étape 2 : plusieurs critères, la fonction NB.SI.ENS
=NB.SI.ENS(plage_critères1 ; critère1 ; plage_critères2 ; critère2 ; …)NB.SI.ENS(...) : compte les cellules qui remplissent plusieurs conditions en même temps.
plage_critères1 : la première plage à examiner.
critère1 : la condition appliquée à cette première plage.
plage_critères2 : la plage suivante, obligatoirement de même hauteur que la première.
critère2 et suivants : on empile les paires plage / critère, jusqu'à 127. Un ordre inversé provoque une erreur.
C'est la même logique que SOMME.SI.ENS, à ceci près qu'on compte au lieu d'additionner. Si les hauteurs de plage diffèrent, Excel renvoie #VALEUR!.
Étape 3 : NBVAL SI contient, le joker étoile
Pour compter les cellules qui contiennent un mot sans être égales à ce mot, encadrez-le de deux astérisques :
=NB.SI(D2:D50;"*Abonnement*")Lecture : combien de libellés contiennent le mot Abonnement, où qu'il se trouve dans la cellule.
D2:D50 : la colonne des libellés à parcourir.
"*Abonnement*" : le critère. L'astérisque remplace n'importe quelle suite de caractères ; en encadrer le mot revient à écrire « contient ».
Le point d'interrogation, lui, remplace un caractère unique. Pensez à figer vos plages avec le signe dollar si vous recopiez la formule vers le bas.
Exercice 5 : Donnée Finance : analyse d'un journal d'écritures
Objectif : compter les écritures d'un service, puis celles qui dépassent 1 000 € au débit, puis celles dont le libellé contient « Abonnement ». Les trois formes de comptage conditionnel dans un seul jeu de données.
Compter sur plusieurs plages en une seule formule
C'est la possibilité la plus sous-utilisée de NBVAL. Plutôt que d'écrire trois NBVAL puis de les additionner, passez les trois plages en arguments séparés par un point-virgule :
=NBVAL(D2:D11;E2:E11;F2:F11)Lecture : le nombre total de réponses recueillies sur les trois questions, en une seule cellule.
D2:D11 : les réponses à la première question.
E2:E11 : les réponses à la deuxième question.
F2:F11 : les réponses à la troisième question. NBVAL compte chaque plage puis additionne les trois totaux.
Les plages peuvent appartenir à des zones différentes de la feuille, et même à des feuilles différentes.
NBVAL et DECALER : construire une plage dynamique
C'est l'usage avancé le plus rentable de NBVAL. Combinée à DECALER, elle définit une plage dont la hauteur s'ajuste toute seule quand vous ajoutez des lignes :
=DECALER($A$2;0;0;NBVAL($A$2:$A$1000);1)DECALER(...) : crée une référence dynamique à une cellule ou à une plage.
$A$2 : cellule de départ, toujours A2 grâce aux $.
0 (lignes) : aucun déplacement vertical depuis ce point de départ.
0 (colonnes) : aucun déplacement horizontal.
NBVAL($A$2:$A$1000) : hauteur de la plage, définie par le nombre de cellules remplies.
1 : largeur de la plage, ici une seule colonne.
Votre graphique, votre liste déroulante ou votre RECHERCHEV se mettent alors à jour sans que vous ayez à corriger la plage à la main. Une limite à connaître : la formule suppose une colonne sans trou, sinon la plage s'arrête à la première rupture.
Exercice 4 : Donnée Marketing : dépouillement d'un questionnaire
Objectif : mesurer le taux de remplissage d'un questionnaire à trois questions posé à dix clients, en calculant le dénominateur plutôt qu'en l'écrivant en dur.
Le piège n°1 : la cellule qui semble vide sans l'être
C'est l'erreur que nos formateurs corrigent le plus souvent en entreprise. Vous appliquez NBVAL à une colonne calculée, et le résultat est trop élevé : NBVAL renvoie le nombre total de lignes au lieu du nombre de lignes remplies.
L'explication : une formule du type =SI(A2="";"";A2) renvoie du texte vide. À l'écran la cellule paraît vide, mais elle contient bien une formule, donc quelque chose. NBVAL la compte.
Étape 1 : repérer le problème
Comparez le résultat de NBVAL avec le nombre de lignes attendu. Autre test rapide : sélectionnez la plage et lisez le compteur dans la barre d'état en bas de la fenêtre. Un écart signale une colonne calculée.
Étape 2 : la correction rapide
La solution la plus simple consiste à retirer du total les cellules qui contiennent du texte vide :
=NBVAL(G2:G20) - NB.SI(G2:G20;"")Lecture : un total, moins ce qu'il faut en retirer.
NBVAL(G2:G20) : compte toutes les cellules non vides, faux vides compris.
NB.SI(G2:G20;"") : compte les seules cellules qui contiennent du texte vide.
le signe moins : retire les secondes des premières. Il reste les valeurs réelles.
Deux fonctions déjà connues, aucune syntaxe matricielle : c'est la version à retenir si vous débutez.
Étape 3 : la version robuste avec SOMMEPROD
=SOMMEPROD((G2:G20<>"")*1)SOMMEPROD(...) : additionne le résultat d'un test appliqué à chaque cellule de la plage.
G2:G20<>"" : le test. Il renvoie VRAI si la cellule contient autre chose que du vide, FAUX sinon.
*1 : convertit chaque VRAI en 1 et chaque FAUX en 0.
SOMMEPROD : additionne ces 1 et ces 0 : le total correspond au nombre de VRAI.
Elle est plus fiable que la précédente parce qu'elle teste réellement le contenu au lieu de le comparer à un critère, ce qui la rend insensible aux subtilités de format. Voir aussi notre article sur SOMMEPROD.
Étape 4 : le cas des espaces invisibles
Deuxième source d'écart, très fréquente sur les exports de logiciels métier : une cellule contenant un simple espace. Elle est comptée par NBVAL alors qu'elle est vide pour l'utilisateur, et aucune des deux formules ci-dessus ne la neutralise. La parade consiste à supprimer les espaces parasites avant tout comptage, ou à intégrer SUPPRESPACE directement :
=SOMMEPROD((SUPPRESPACE(G2:G20)<>"")*1)Lecture : même principe que l'étape 3, avec un nettoyage préalable.
SUPPRESPACE(G2:G20) : retire les espaces superflus avant le test. Une cellule ne contenant qu'un espace devient donc vraiment vide.
*1 : conversion des VRAI/FAUX en 1 et 0, additionnés par SOMMEPROD.
Exercice 6 : Donnée Gestion de projet : le piège de la cellule faussement vide
Objectif : constater l'écart entre NBVAL et le comptage réel sur une colonne « Retard » calculée par formule, puis produire le bon chiffre. L'exercice qui fait basculer la compréhension.
NBVAL UNIQUE : compter les valeurs distinctes
NBVAL compte les cellules remplies, pas les valeurs différentes. Si votre colonne Service contient dix lignes réparties sur quatre services, NBVAL renvoie 10, pas 4.
Sur Excel 365 et Excel 2021, la combinaison est directe :
=NBVAL(UNIQUE(G2:G11))Lecture : deux fonctions imbriquées, qui se lisent de l'intérieur vers l'extérieur.
UNIQUE(G2:G11) : extrait d'abord la liste des valeurs différentes de la plage.
NBVAL(...) : compte ensuite les éléments de cette liste réduite.
Sur Excel 2016 et 2019, la fonction UNIQUE n'existe pas. La formule compatible avec toutes les versions :
=SOMMEPROD((G2:G11<>"")/NB.SI(G2:G11;G2:G11&""))Lecture : chaque valeur ne pèse qu'une fraction, et les fractions d'une même valeur totalisent 1.
G2:G11<>"" : vaut VRAI pour une cellule remplie, FAUX pour une cellule vide : le numérateur.
NB.SI(G2:G11;G2:G11&"") : pour chaque cellule, son nombre d'occurrences dans la plage : le dénominateur.
la division : trois « Finance » comptent un tiers chacun et totalisent donc 1, une seule fois.
&"" : force la comparaison en mode texte et évite la division par zéro sur les cellules vides.
Si votre objectif est plutôt de nettoyer la liste, voyez comment supprimer les doublons sur Excel.
Exercice 7 : Donnée RH : audit de qualité d'une base salariés
Objectif : mesurer le taux de complétude d'une colonne, compter les services distincts et chiffrer le volume de saisie restant avant un import dans le SIRH. L'exercice le plus complet du classeur.
Questions fréquentes sur NBVAL
Quelle est la différence entre NB et NBVAL ?
NB ne compte que les cellules contenant un nombre ou une date. NBVAL compte toutes les cellules remplies, y compris le texte. Sur une colonne de montants avec des cases non chiffrées, NB donne le nombre de montants saisis, NBVAL le nombre de lignes du tableau.
La fonction NBVAL.SI existe-t-elle ?
Non. Ni NBVAL SI, ni NBVAL.SI ne figurent dans la bibliothèque de fonctions d'Excel, quelle que soit la version. Pour compter avec un critère, utilisez NB.SI, et NB.SI.ENS au-delà d'un critère.
NBVAL compte-t-elle les zéros ?
Oui. Un zéro est une valeur comme une autre : la cellule n'est pas vide, elle est donc comptée. Idem pour une cellule contenant uniquement un espace.
Pourquoi NBVAL renvoie un résultat trop grand ?
Dans neuf cas sur dix, la plage contient des formules qui renvoient du texte vide (""), ou des espaces invisibles issus d'un export. Utilisez =NBVAL(plage)-NB.SI(plage;"") ou =SOMMEPROD((plage<>"")*1) pour obtenir le comptage réel.
Comment compter les cellules non vides d'une colonne entière ?
Écrivez =NBVAL(A:A). Excel accepte la référence de colonne entière et n'en sera pas ralenti sur un fichier de taille normale. Attention toutefois : l'en-tête de colonne est compté, pensez à retrancher 1.
NBVAL fonctionne-t-elle avec un filtre actif ?
Non, NBVAL compte les lignes masquées. Pour ne compter que les lignes visibles après avoir filtré votre tableau, il faut passer par SOUS.TOTAL avec le code 103.
Existe-t-il une formation pour maîtriser ces fonctions ?
Oui. Les fonctions de comptage et de comptage conditionnel sont au programme de notre formation Excel débutant, et déclinées sur des cas métier dans la formation Excel avancé. Nous intervenons également en intra-entreprise sur vos propres fichiers.




![Modèle facture Excel gratuit : auto-calculé + 7 exercices [2026]](https://static.wixstatic.com/media/f85934_176ed89091f74a2aab3afbab5f5f949f~mv2.png/v1/fill/w_333,h_250,fp_0.50_0.50,q_35,blur_30,enc_avif,quality_auto/f85934_176ed89091f74a2aab3afbab5f5f949f~mv2.webp)
![Modèle facture Excel gratuit : auto-calculé + 7 exercices [2026]](https://static.wixstatic.com/media/f85934_176ed89091f74a2aab3afbab5f5f949f~mv2.png/v1/fill/w_318,h_239,fp_0.50_0.50,q_95,enc_avif,quality_auto/f85934_176ed89091f74a2aab3afbab5f5f949f~mv2.webp)