Qu'est-ce que la fonction NB. SI ?
NB.SI (COUNTIF en anglais) t'évite de compter des lignes à la main ou de bricoler un filtre temporaire juste pour obtenir un chiffre : tu poses une condition, elle scanne la plage et te renvoie le total, remis à jour automatiquement dès que les données changent. C'est la fonction de comptage conditionnel la plus utilisée d'Excel, celle qu'on dégaine en réunion pour répondre à une question chiffrée sans sortir du tableau.
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.

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.

Exemples pratiques pas à pas
Comment faire une fonction NB.SI simple
Chaque lundi, tu fais le point sur l'activité par territoire. Tes ventes sont listées une par une avec leur région et le commercial qui les a signées, et tu veux savoir combien proviennent de chaque secteur sans les compter à la main. La fonction NB.SI compte pour toi le nombre de ventes qui correspondent à une région précise.
- 1Dans une cellule, écris
=NB.SI(. - 2En 1er argument : sélectionne la colonne des régions,
B2:B19. C'est la zone dans laquelle la fonction va compter. - 3En 2ᵉ argument : clique sur la cellule qui porte le critère,
F4. Elle affiche « Nord » aujourd'hui, et en pointant une cellule plutôt qu'en écrivant la région en dur, tu changeras de région sans jamais retoucher la formule. - 4Ferme la parenthèse et appuie sur Entrée.
=NB.SI(B2:B19; F4)B2:B19) et compte chaque ligne égale au contenu de la cellule F4 (« Nord »), soit 5 ventes. En pointant une cellule plutôt qu'un texte figé, tu changes de région dans F4 et le compte se met à jour.Comment faire une fonction NB.SI avec un critère de comparaison
Avant de boucler la clôture du trimestre, tu dois signaler les paiements qui vont demander un feu vert avant d'être réglés. Tes dépenses sont listées avec leur montant, et tu veux repérer d'un coup combien de postes dépassent 500 €, le seuil au-delà duquel une validation hiérarchique devient obligatoire. La fonction NB.SI compte ces dépenses pour toi, sans que tu aies à trier ton tableau.
- 1Dans une cellule, écris
=NB.SI(. - 2En 1er argument : sélectionne la colonne des montants,
B2:B6. C'est sur elle que porte ta condition. - 3En 2ᵉ argument : écris le critère de comparaison,
">500". L'opérateur et la valeur seuil vont ensemble entre les mêmes guillemets, et la fonction ne compte alors que les cellules dont le montant dépasse 500 €. - 4Ferme la parenthèse et appuie sur Entrée.
=NB.SI(B2:B6; ">500")Comment faire un NB.SI sur plusieurs critères
En pleine réunion, on te demande combien de grosses commandes le Nord a signées, et il te faut la réponse tout de suite. Tes commandes sont listées avec leur région et leur montant, et une seule condition ne te suffit plus : tu veux celles de la région Nord qui pèsent aussi plus de 1 000 €. La fonction NB.SI ne sait croiser qu'un seul critère à la fois, alors tu passes à sa grande soeur la fonction NB.SI.ENS, qui empile autant de conditions que nécessaire.
- 1Dans une cellule, écris
=NB.SI.ENS(. - 2En 1er argument : sélectionne la colonne des régions,
B2:B6. C'est sur elle que porte ta première condition. - 3En 2ᵉ argument : écris le critère qui l'accompagne,
"Nord". À ce stade, la fonction ne retient que les lignes de cette région. - 4En 3ᵉ argument : sélectionne la colonne des montants,
C2:C6. Elle doit couvrir exactement les mêmes lignes que la première, sinon la fonction renvoie une erreur. - 5En 4ᵉ argument : écris son critère,
">1000". Seules les lignes qui remplissent les deux conditions en même temps sont comptées, ici les commandes du Nord au-dessus de 1 000 €. - 6Ferme la parenthèse et appuie sur Entrée.
=NB.SI.ENS(B2:B6; "Nord"; C2:C6; ">1000")Comment compter les doublons avec la fonction NB.SI
Tu t'apprêtes à importer une liste d'inscriptions dans ton outil d'envoi, mais tu soupçonnes que certains emails ont été saisis deux fois et tu ne veux pas relancer les mêmes personnes. Avant de nettoyer le fichier, tu veux savoir lesquels reviennent plusieurs fois. La fonction NB.SI, recopiée en face de chaque ligne, compte les occurrences de chaque email et met les doublons en évidence.
- 1Dans une cellule, écris
=NB.SI(. - 2En 1er argument : sélectionne la plage complète des emails et fige-la avec des dollars,
$A$2:$A$5. Figée, elle restera identique quand tu recopieras la formule vers le bas. - 3En 2ᵉ argument : clique sur la cellule de la ligne courante,
A2, sans dollars cette fois. La fonction compte alors combien de fois cet email précis apparaît dans toute la plage, et la référence se décale d'une ligne à chaque recopie. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie sur toute la colonne. Toute cellule supérieure à 1 trahit un doublon que tu peux filtrer et nettoyer.
=NB.SI($A$2:$A$5; A2)
Les 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
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...).
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.
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.
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).
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
Continue sur ta lancée après la fonction NB.SI : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voirLes formules conditionnelles dans Excel

Le modèle Excel « Suivi de candidatures »

Le guide complet pour bien démarrer sur Excel




