Si vous utilisez Excel régulièrement, vous avez sans doute déjà croisé NBVAL et SI. Pris séparément, ces deux outils sont simples. Ensemble, ils deviennent très pratiques pour analyser rapidement une plage de données, contrôler un tableau ou afficher un résultat dynamique sans sortir l’artillerie lourde des formules complexes.
Mais attention : on ne peut pas utiliser NBVAL comme NB.SI. NBVAL compte les cellules non vides, point final. Il ne sait pas filtrer selon un critère. C’est justement là que SI entre en jeu. On peut alors construire des formules intelligentes pour compter conditionnellement, afficher un message, ou vérifier si une zone est renseignée comme attendu.
Dans cet article, on va voir comment utiliser NBVAL avec SI dans Excel, avec des exemples concrets et des cas d’usage très courants. L’idée n’est pas de mémoriser une formule magique, mais de comprendre le mécanisme pour l’adapter à vos propres fichiers.
NBVAL et SI : à quoi servent-ils exactement ?
NBVAL compte le nombre de cellules non vides dans une plage. Peu importe qu’il y ait du texte, un nombre, une date ou même une formule : si la cellule n’est pas vide, elle est comptée.
Exemple simple :
=NBVAL(A1:A10)
Cette formule renvoie le nombre de cellules remplies dans A1:A10.
SI, lui, permet de tester une condition et de renvoyer un résultat différent selon que cette condition est vraie ou fausse.
Exemple :
=SI(A1= »Oui »; »Validé »; »À vérifier »)
Si A1 contient “Oui”, Excel affiche “Validé”. Sinon, il affiche “À vérifier”.
Quand on les combine, l’objectif est souvent de faire un test logique avant de compter, ou de compter puis d’afficher un message selon le résultat. Et c’est là que ça devient utile dans un tableau de suivi, un planning, une liste de tâches ou un inventaire.
Le cas le plus simple : afficher un message selon le nombre de cellules remplies
Imaginons une petite liste de saisie, par exemple des réponses à un formulaire. Vous voulez savoir si toutes les cellules d’une plage ont été renseignées.
Supposons que vos données soient dans A2:A6. Vous pouvez écrire :
=SI(NBVAL(A2:A6)=5; »Tout est rempli »; »Il manque des valeurs »)
Ici, Excel compte les cellules non vides dans A2:A6. S’il en trouve 5, cela signifie que tout est complété.
Ce genre de formule est très pratique pour :
Petit réflexe utile : au lieu de comparer à un nombre fixe, vous pouvez aussi comparer à une cellule qui contient le total attendu. C’est plus souple si votre plage évolue.
Par exemple :
=SI(NBVAL(A2:A6)=B1; »Complet »; »Incomplet »)
Si B1 contient le nombre attendu de réponses, votre contrôle devient plus flexible. Malin, non ?
Utiliser NBVAL avec SI pour tester si une plage est vide
Autre usage très courant : savoir si une plage contient au moins une valeur. C’est souvent utile pour éviter une erreur, lancer un calcul uniquement si des données existent, ou simplement afficher un message plus clair.
Exemple :
=SI(NBVAL(A2:A10)=0; »Aucune donnée »; »Données présentes »)
La logique est simple :
- si NBVAL renvoie 0, aucune cellule n’est remplie,
- sinon, il y a au moins une donnée.
Ce type de formule est particulièrement intéressant dans les tableaux de bord. Par exemple, si une zone de saisie n’est pas encore alimentée, vous pouvez éviter d’afficher un graphique vide ou un message peu parlant du type “#DIV/0!”.
On ne va pas se mentir : un tableau qui dit “Aucune donnée” est toujours plus élégant qu’un écran rempli d’erreurs. Excel aime la précision, mais vos utilisateurs aiment surtout la clarté.
Faire un comptage conditionnel avec SI et NBVAL : les limites à connaître
Il faut être clair sur un point important : NBVAL ne sait pas compter selon une condition. Si vous cherchez à compter les cellules non vides uniquement lorsqu’un critère est rempli, NBVAL seul ne suffira pas.
Par exemple, vous pourriez vouloir compter les cellules non vides de la colonne B uniquement si la colonne A contient “Validé”. Une formule naïve du type :
=NBVAL(SI(A2:A10= »Validé »;B2:B10))
peut sembler logique, mais selon la version d’Excel et la manière dont elle est saisie, elle peut nécessiter une formule matricielle ou ne pas se comporter comme attendu. En pratique, pour ce genre de besoin, SOMMEPROD ou NB.SI.ENS sont souvent plus adaptés.
Voici une alternative plus robuste pour compter les cellules non vides de B quand A vaut “Validé” :
=SOMMEPROD((A2:A10= »Validé »)*(B2:B10<> » »))
Cette formule compte les lignes où :
- la colonne A est égale à “Validé”,
- et la colonne B n’est pas vide.
Pourquoi en parler ici ? Parce que beaucoup d’utilisateurs cherchent “NBVAL avec SI” alors qu’en réalité ils veulent un comptage conditionnel. Et dans ce cas, mieux vaut utiliser l’outil le plus fiable pour la tâche.
Exemple concret : suivi de présence dans une feuille Excel
Prenons un cas simple, très proche de la vraie vie. Vous tenez une feuille de présence avec une colonne pour les noms et une autre pour les statuts “Présent” ou “Absent”. Vous voulez savoir combien de personnes ont bien été renseignées, puis afficher un message automatique.
Supposons que la plage B2:B20 contienne les statuts. Vous pouvez écrire :
=SI(NBVAL(B2:B20)=19; »Toutes les présences sont saisies »; »Il reste des absences de saisie »)
Mais si vous voulez compter uniquement les cellules contenant “Présent”, NBVAL n’est plus le bon outil. Il faudra plutôt utiliser :
=NB.SI(B2:B20; »Présent »)
Et si vous voulez ensuite afficher un message selon ce résultat :
=SI(NB.SI(B2:B20; »Présent »)>0; »Présences enregistrées »; »Aucune présence »)
On voit bien la frontière : NBVAL sert à compter les cellules non vides, tandis que NB.SI compte selon une condition. Si vous combinez SI avec NBVAL, c’est surtout pour tester l’état d’une plage avant d’afficher un résultat.
Vérifier si une cellule contient une valeur avant d’exécuter un calcul
Dans certains fichiers, on veut éviter qu’une formule renvoie un résultat si aucune donnée n’est saisie. C’est un très bon réflexe pour garder un tableau propre.
Par exemple, si vous calculez un total en C1 à partir de valeurs en A1:A10, vous pouvez conditionner l’affichage :
=SI(NBVAL(A1:A10)=0; » »;SOMME(A1:A10))
Résultat :
- si la plage est vide, la cellule reste vide,
- si des valeurs existent, Excel affiche la somme.
Ce type de formule est excellent pour les rapports, les tableaux de bord ou les modèles de saisie. Vous pouvez aussi remplacer « » par un message comme “Saisir des valeurs”.
Exemple :
=SI(NBVAL(A1:A10)=0; »Saisir des valeurs »;SOMME(A1:A10))
À utiliser avec prudence si le tableau est destiné à être exporté ou partagé, car certains utilisateurs préfèrent voir une cellule vide plutôt qu’un texte d’alerte.
Associer NBVAL et SI avec ET ou OU
Pour aller un peu plus loin, vous pouvez combiner NBVAL et SI avec d’autres fonctions logiques comme ET et OU. C’est très utile quand plusieurs conditions doivent être vérifiées.
Exemple : vous voulez afficher “OK” seulement si la plage A2:A5 est entièrement remplie et si B1 contient “Oui”.
=SI(ET(NBVAL(A2:A5)=4;B1= »Oui »); »OK »; »À contrôler »)
Dans ce cas, les deux conditions doivent être vraies.
Autre exemple avec OU :
=SI(OU(NBVAL(A2:A5)=0;B1= »Non »); »Blocage »; »Autorisé »)
Ici, si la plage est vide ou si B1 contient “Non”, le message affiche “Blocage”.
Ce genre de combinaison est très pratique dans les fichiers de suivi qualité, de validation de dossiers ou de gestion de projets. Vous transformez Excel en petit assistant logique, sans macro et sans prise de tête.
Les erreurs à éviter avec NBVAL et SI
Quand on débute avec ces formules, certaines erreurs reviennent souvent. Voici les plus classiques.
- Confondre NBVAL et NB.SI : NBVAL compte tout ce qui n’est pas vide, sans critère.
- Oublier que les cellules contenant une formule vide comptent parfois comme non vides selon leur contenu.
- Comparer NBVAL à un mauvais total attendu, surtout si la plage contient des cellules d’en-tête ou des zones fusionnées.
- Utiliser NBVAL pour un comptage conditionnel alors qu’une fonction comme NB.SI, NB.SI.ENS ou SOMMEPROD serait plus adaptée.
Un bon réflexe consiste à vous demander : “Est-ce que je veux compter des cellules remplies, ou des cellules remplies sous condition ?” Cette petite question évite pas mal de formules bancales.
Quelques formules prêtes à l’emploi
Voici une petite sélection de formules utiles que vous pouvez adapter immédiatement :
Afficher si une plage est vide
=SI(NBVAL(A2:A10)=0; »Vide »; »Rempli »)
Vérifier que tous les champs sont remplis
=SI(NBVAL(A2:A10)=9; »Formulaire complet »; »Champ manquant »)
Masquer un calcul tant qu’aucune donnée n’est saisie
=SI(NBVAL(A2:A10)=0; » »;MOYENNE(A2:A10))
Associer une condition logique à NBVAL
=SI(ET(NBVAL(A2:A10)>0;B1= »Oui »); »Lancer le traitement »; »Attendre »)
Afficher un message personnalisé selon le remplissage
=SI(NBVAL(C2:C8)<7; »Compléter les données »; »Tout est bon »)
Le vrai avantage ici, c’est la lisibilité. Une formule courte et bien pensée est souvent plus utile qu’une construction trop compliquée. Excel pardonne beaucoup de choses, mais pas les formules illisibles qu’on ne comprend plus trois jours plus tard.
Quand utiliser NBVAL avec SI, et quand choisir autre chose ?
Utilisez NBVAL avec SI quand votre besoin est simple :
- vérifier si une plage est vide ou non,
- contrôler qu’un nombre de cellules est bien renseigné,
- afficher un message selon l’état de remplissage,
- bloquer ou autoriser un calcul selon la présence de données.
Choisissez plutôt NB.SI ou NB.SI.ENS si vous devez compter des cellules selon un ou plusieurs critères. Et optez pour SOMMEPROD si vous avez besoin de combiner plusieurs conditions dans un comptage plus avancé.
En résumé, NBVAL est parfait pour savoir si une cellule est vide ou non, et SI permet d’exploiter ce résultat de façon intelligente. C’est une combinaison simple, mais redoutablement efficace dans les feuilles de suivi du quotidien.
Si vous voulez, je peux aussi vous préparer un article complémentaire sur NB.SI avec SI ou sur les différences entre NBVAL, NB, NB.SI et NB.SI.ENS, avec des exemples prêts à copier dans Excel.
