NB.SI (COUNTIF en anglais) est la fonction de comptage conditionnel la plus utilisée d'Excel. Elle répond à une question simple mais indispensable : combien de cellules correspondent à mon critère ? Tu lui donnes une plage et une condition, elle te rend un nombre.
C'est elle qui compte les ventes d'une région précise, les employés d'un certain poste, les dépenses au-dessus d'un seuil, les produits qui contiennent un mot-clé ou les mesures hors tolérance. Avec les jokers * et ?, elle gère aussi les recherches partielles sans que tu aies besoin de connaître le libellé exact.
Syntaxe de la fonction NB.SI
=NB.SI(plage; critère)Comprendre chaque paramètre de la fonction NB.SI
plage
: la zone de cellules à analyserTu peux utiliser une colonne entière (A:A), une plage délimitée (A1:A100), ou une plage nommée. NB.SI ne peut analyser qu'une seule plage à la fois.
Pour compter selon plusieurs plages ou plusieurs critères simultanément, utilise NB.SI.ENS qui reprend la même logique mais avec des paires plage/critère additionnelles.
critère
: la condition que les cellules doivent satisfaire pour être comptéesTu peux utiliser du texte exact ("Paris"), un nombre (100), un opérateur de comparaison (">100", "<>0"), ou des jokers ("*formation*", "P??is").
Quelques formes courantes : "Paris" (égal au texte Paris, insensible à la casse), ">100" (supérieur à 100), "<>0" (différent de 0), "*sport*" (contient le mot sport n'importe où). Pour utiliser un opérateur avec une valeur stockée dans une cellule, concatène : ">"&B1.
Astuce : Le joker * remplace n'importe quelle suite de caractères : "P??is" trouve Paris et Paeis. Le ? remplace exactement un seul caractère. Ces jokers ne fonctionnent qu'avec du texte, pas avec des nombres.
Pas envie d'écrire la formule NB.SI à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Commercial : compter les ventes par région
Tu es responsable commercial et tu veux savoir combien de ventes ont été réalisées dans la région Nord pour ton rapport hebdomadaire. Plutôt que de trier et compter manuellement, NB.SI fait le travail en une formule.
| A | B | C | |
|---|---|---|---|
| 1 | Vente | Région | Montant |
| 2 | #001 | Nord | 1 200 € |
| 3 | #002 | Sud | 850 € |
| 4 | #003 | Nord | 2 100 € |
| 5 | #004 | Est | 1 500 € |
| 6 | #005 | Nord | 900 € |
=NB.SI(B1:B5; "Nord")La fonction parcourt la colonne Région et compte les cellules qui contiennent exactement Nord, soit 3. Le comptage est insensible à la casse (Nord, NORD et nord sont traités de la même façon). Placer le nom de la région dans une cellule et la référencer rend le calcul dynamique.
Contrôleur de gestion : compter les dépenses supérieures à un seuil
Tu dois identifier combien de dépenses dépassent 500 € pour un rapport d'audit. Les opérateurs de comparaison s'écrivent entre guillemets dans le critère, directement collés à la valeur seuil.
| A | B | |
|---|---|---|
| 1 | Dépense | Montant |
| 2 | Fournitures | 320 € |
| 3 | Logiciel | 890 € |
| 4 | Formation | 1 200 € |
| 5 | Transport | 150 € |
| 6 | Matériel | 650 € |
=NB.SI(B1:B5; ">500")Ici, l'opérateur de comparaison (collé à la valeur seuil dans le critère) ne retient que les dépenses au-dessus de 500 €, soit 3 lignes (890, 1 200 et 650 €). Pour rendre le seuil modifiable sans toucher à la formule, stocke-le dans une cellule et concatène l'opérateur avec cette référence.
RH : compter les postes d'un certain type avec un joker
Tu veux compter tous les postes contenant le mot Manager, quel que soit le libellé exact (Manager, Senior Manager, Product Manager, etc.). Le joker * remplace n'importe quelle suite de caractères avant ou après le mot recherché.
| A | B | |
|---|---|---|
| 1 | Employé | Poste |
| 2 | Alice | Manager |
| 3 | Bob | Développeur |
| 4 | Claire | Senior Manager |
| 5 | David | Product Manager |
| 6 | Emma | Designer |
=NB.SI(B1:B5; "*Manager*")Les astérisques placées autour du mot recherché comptent les cellules contenant Manager n'importe où dans le texte, soit 3 (Manager, Senior Manager, Product Manager). Sans elles, le critère ne trouverait que les cellules contenant exactement ce mot, sans rien avant ni après.
Qualité : compter les valeurs hors tolérance avec différent de
Tu dois compter les mesures qui ne correspondent pas à la valeur cible de 100. L'opérateur <> signifie « différent de » dans les critères de NB.SI.
| A | B | |
|---|---|---|
| 1 | Échantillon | Mesure |
| 2 | #1 | 100 |
| 3 | #2 | 98 |
| 4 | #3 | 100 |
| 5 | #4 | 102 |
| 6 | #5 | 100 |
=NB.SI(B1:B5; "<>100")L'opérateur « différent de » dans le critère retient les mesures qui ne valent pas 100, soit 2 lignes hors cible (98 et 102). Pour affiner, NB.SI.ENS permet de croiser ce critère avec un autre, par exemple les mesures hors cible ET au-dessus d'un seuil critique.
Généraliste : critère dynamique avec référence de cellule
Tu veux rendre ta formule de comptage flexible en utilisant une cellule comme critère plutôt que de coder la valeur en dur dans la formule. Ainsi, une seule formule te permet de basculer entre différents critères en modifiant simplement D2.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Produit | Catégorie | Critère | |
| 2 | iPhone | Tech | Tech | |
| 3 | Galaxy | Tech | ||
| 4 | Table | Meuble | ||
| 5 | MacBook | Tech |
=NB.SI(B1:B4; D2)La formule lit le critère depuis D2 et parcourt B2:B5 pour compter les cellules égales à « Tech ». Résultat : 3 (iPhone, Galaxy, MacBook). Si tu changes D2 en « Meuble », le comptage passe à 1 automatiquement.
Mets la fonction NB.SI en pratique avec un exercice corrigé
M'entraînerLes erreurs fréquentes avec la fonction NB.SI
Opérateur de comparaison sans guillemets : la formule renvoie 0 ou une erreur
=NB.SI(A1:A10; >100) provoque une erreur de syntaxe car l'opérateur > n'est pas reconnu en dehors des guillemets.
Solution : Mets toujours l'opérateur entre guillemets : =NB.SI(A1:A10; ">100"). L'opérateur fait partie du texte du critère.
Critère dynamique mal concaténé : la formule cherche littéralement '>B1'
=NB.SI(A1:A10; ">B1") cherche le texte >B1 au lieu d'utiliser la valeur stockée dans la cellule B1. L'opérateur et la référence ne sont pas séparés.
Solution : Concatène l'opérateur (entre guillemets) avec la référence de cellule en dehors des guillemets : =NB.SI(A1:A10; ">"&B1). L'esperluette & fait la jonction entre les deux.
Comptage à zéro alors que des valeurs correspondent
Tes nombres sont stockés en format texte (souvent importés depuis un autre système). =NB.SI(A1:A10; 100) ne trouve pas les cellules qui contiennent 100 en texte, car pour Excel un nombre et un texte sont différents.
Solution : Utilise le critère en texte "100" pour compter les nombres stockés en texte, ou convertis tes données en vrais nombres via la colonne Données > Convertir. Pour vérifier, sélectionne une cellule et regarde si elle est alignée à gauche (texte) ou à droite (nombre).
NB.SI vs NB.SI.ENS vs NB vs NBVAL
Ces quatre fonctions comptent des cellules, mais avec des portées et des critères différents. NB.SI est le point de départ ; passe à NB.SI.ENS dès que tu as deux critères ou plus.
| Critère | NB.SI | NB.SI.ENS | NB | NBVAL |
|---|---|---|---|---|
| Nombre de critères | 1 | 1 à 127 | Aucun (compte les nombres) | Aucun (compte les non-vides) |
| Jokers (* ?) | Oui | Oui | Non | Non |
| Opérateurs (>, <, <>) | Oui | Oui | Non | Non |
| Cas d'usage | Compter avec 1 critère | Croiser 2+ critères | Compter les nombres purs | Compter les cellules remplies |
Astuces avancées avec NB.SI
Compter les doublons avant de dédupliquer
Pour savoir si une valeur apparaît plusieurs fois dans une liste, utilise NB.SI depuis l'intérieur d'une autre colonne : =NB.SI(A:A; A1) dans chaque ligne te donne le nombre d'occurrences de cette valeur dans toute la colonne. Si le résultat est supérieur à 1, c'est un doublon.
Filtre ensuite sur les cellules avec une valeur > 1 pour isoler tous les doublons avant de les nettoyer.
Calculer des fréquences avec NB.SI et le total
Pour connaître la part en pourcentage d'une valeur dans ta liste, divise NB.SI par le nombre total de lignes : =NB.SI(A:A; "Paris")/NBVAL(A:A). Tu obtiens la fréquence relative directement.
Formatte la cellule en pourcentage pour afficher 23% au lieu de 0,23.
Remplacer les plages non contiguës par NB.SI.ENS
NB.SI ne peut analyser qu'une seule plage. Pour compter dans deux colonnes distinctes avec le même critère, utilise deux NB.SI et additionne : =NB.SI(A:A; "OK")+NB.SI(C:C; "OK").
Dès que tu dois croiser deux critères sur la même ligne (région ET statut), passe directement à NB.SI.ENS.
Questions fréquentes sur la fonction NB.SI
Quelle est la différence entre NB.SI et NB.SI.ENS ?
NB.SI compte avec un seul critère. NB.SI.ENS permet plusieurs critères simultanés sur plusieurs plages : par exemple, compter les ventes supérieures à 1 000 € ET réalisées en janvier.
Utilise NB.SI.ENS dès que tu as 2 conditions ou plus à croiser. Sa syntaxe est similaire : =NB.SI.ENS(plage1; critère1; plage2; critère2...).
NB.SI est-elle sensible à la casse (majuscules et minuscules) ?
Non. NB.SI ne distingue pas les majuscules des minuscules : Paris, PARIS et paris sont comptés de la même façon. C'est un comportement par défaut d'Excel pour les comparaisons de texte.
Pour un comptage sensible à la casse, utilise une formule matricielle avec EXACT : =SOMMEPROD((EXACT(A1:A10; "PARIS"))*1) compte uniquement les cellules contenant exactement PARIS en majuscules.
Comment compter les cellules contenant un mot spécifique ?
Utilise les jokers : =NB.SI(A:A; "*mot*") compte toutes les cellules contenant mot n'importe où dans le texte. L'astérisque remplace n'importe quelle suite de caractères.
Si tu veux que le mot soit au début, utilise "mot*". Si tu veux qu'il soit à la fin, utilise "*mot". Le ? remplace exactement un seul caractère : "P??is" trouverait Paris, Paeis, Pabis, etc.
Comment compter les cellules vides avec NB.SI ?
Utilise =NB.SI(A1:A10; "") pour compter les cellules visuellement vides. Pour les cellules non vides, utilise =NB.SI(A1:A10; "<>") ou simplement =NBVAL(A1:A10).
Attention : NB.SI avec "" compte les cellules contenant une chaîne vide saisie délibérément, ce qui peut différer de NB.VIDE qui compte les cellules vraiment vides (sans aucun contenu).
Peut-on utiliser une référence de cellule comme critère ?
Oui. =NB.SI(A:A; B1) compte les cellules égales à la valeur de B1. Pour les opérateurs, concatène l'opérateur (entre guillemets) avec la référence : =NB.SI(A:A; ">"&B1) compte les valeurs supérieures à ce qui est en B1.
Cette syntaxe avec & est la plus courante pour les critères dynamiques liés à des seuils modifiables.
Pour aller plus loin
Les fonctions similaires : NB.SI.ENS, SOMME.SI, NBVAL, NB.VIDE, MOYENNE.SI
Découvre notre suivi de candidatures pour ne perdre aucune piste pendant ta recherche d’emploi
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

