=NB.SI(B2:B7;"North") compte les cellules de B2:B7 qui contiennent North. NB.SI (COUNTIF en anglais, et souvent tapé "nb si") prend deux arguments : la plage à examiner et la condition qu'une cellule doit remplir pour être comptée. Le tableau affiche les formules sous leur forme anglaise, avec des virgules, mais vous pouvez aussi les taper comme dans un Excel français, avec des points-virgules : =NB.SI(B2:B7;"North").
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | Region | Count | |
| 2 | Ana | North | 120 | North | 3 | |
| 3 | Ben | South | 45 | South | 2 | |
| 4 | Cara | North | 80 | |||
| 5 | Dan | East | 55 | |||
| 6 | Eva | South | 200 | |||
| 7 | Finn | North | 30 |
=NB.SI(B2:B7;"North")F2 compte les lignes North. F3 fait la même chose avec la condition placée dans une cellule : remplacez E3 par East, ou changez une des régions de la colonne B, et le compte suit. Une référence de cellule permet de construire un tableau de synthèse : un NB.SI par ligne, chacun pointant vers sa propre étiquette.
Syntaxe de NB.SI
=COUNTIF(range, criteria)
range(plage) correspond aux cellules à vérifier. Ce doit être une plage d'une feuille, commeB2:B7ouB:B.criteria(critère) est la condition, écrite comme un texte entre guillemets, un nombre ou une référence de cellule. Chaque forme ci-dessous est un critère :
| Critère | Compte les cellules |
|---|---|
"North" | égales à North (casse ignorée) |
">50" | supérieures à 50 |
"<>North" | tout sauf North, cellules vides comprises |
55 | égales au nombre 55 |
">"&F6 | supérieures à la valeur de F6 |
"*apple*" | contenant le texte apple |
"" | vides |
"<>" | non vides |
NB.SI supérieur, inférieur ou égal à
Placez l'opérateur de comparaison entre les guillemets avec le nombre : ">50", "<=50", "<>55". Un nombre seul, sans opérateur, signifie "égal à".
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | Condition | Count | |
| 2 | Ana | North | 120 | Over 50 | 4 | |
| 3 | Ben | South | 45 | 50 or less | 2 | |
| 4 | Cara | North | 80 | Exactly 55 | 1 | |
| 5 | Dan | East | 55 | Not 55 | 5 | |
| 6 | Eva | South | 200 | Limit | 100 | |
| 7 | Finn | North | 30 | Over the limit | 2 |
=NB.SI(C2:C7;">50")Quatre des six ventes dépassent 50 et deux valent 50 ou moins, donc F2 et F3 totalisent toujours le nombre de lignes. F7 lit sa limite en F6 : mettez 50 en F6 et F7 affiche le même compte que F2.
NB.SI avec une référence de cellule
Quand la valeur de comparaison se trouve dans une cellule, l'opérateur reste entre guillemets et la cellule y est reliée avec & : ">"&F6, "<="&F6, "<>"&E3. Une erreur fréquente avec NB.SI consiste à écrire ">F6". Entre guillemets, F6 n'est que deux caractères de texte : Excel compare chaque nombre au texte "F6" et le compte vaut presque toujours 0.
Pour "égal à une cellule", aucun opérateur n'est nécessaire : tant que E3 contient une valeur, =NB.SI(B2:B7;E3) équivaut à =NB.SI(B2:B7;"="&E3).
NB.SI contient un texte : les caractères génériques
Deux caractères génériques fonctionnent dans un critère NB.SI. * remplace un nombre quelconque de caractères, ? exactement un. "*apple*" correspond à toute cellule contenant apple n'importe où, "P*" à toute cellule qui commence par P, "????" à tout texte d'exactement quatre caractères.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Condition | Count | |
| 2 | Apple | contains apple | 4 | |
| 3 | Pineapple | starts with P | 3 | |
| 4 | Pear | 4 letters | 2 | |
| 5 | apple juice | equal to APPLE | 1 | |
| 6 | not Pear | 6 | ||
| 7 | Plum | empty | 1 | |
| 8 | Green apple | not empty | 6 |
=NB.SI(A2:A8;"*apple*")Lisez D2 et D5 ensemble. "*apple*" trouve 4 cellules, mais "APPLE" sans caractère générique n'en trouve qu'une, celle qui contient exactement Apple. Sans caractère générique, toute la cellule doit correspondre, et la comparaison ignore la casse : "APPLE", "Apple" et "apple" comptent la même cellule.
D6 montre un piège : "<>Pear" compte 6 cellules, car la cellule vide A6 est elle aussi "différente de Pear". Pour ne compter que les cellules remplies autres que Pear, utilisez NB.SI.ENS (COUNTIFS en anglais) avec deux conditions : =NB.SI.ENS(A2:A8;"<>Pear";A2:A8;"<>").
Pour utiliser le texte d'une cellule, reliez-lui les caractères génériques : =NB.SI(A2:A8;"*"&E2&"*"). Pour compter un vrai astérisque ou point d'interrogation, faites-le précéder d'un tilde : "~*". D'autres modèles figurent sur la page des caractères génériques, et le comptage de toutes les cellules contenant du texte sur compter les cellules contenant du texte.
NB.SI cellule vide et non vide
D7 et D8 dans le tableau ci-dessus comptent les cellules vides et remplies. "" signifie vide et "<>" non vide. Une formule qui renvoie une chaîne vide (=SI(B2>0;B2;"")) paraît vide et "" la compte comme vide, mais "<>" la compte aussi comme remplie, car la cellule contient une formule. NB.SI non vide présente les façons de contourner ce problème.
NB.SI avec des dates
Les dates sont des nombres dans Excel, donc les opérateurs de comparaison fonctionnent. Construisez la date avec DATE, ou prenez-la dans une cellule, et reliez-la à l'opérateur avec &. Ne tapez jamais une date entre guillemets dans votre format régional : ">3/1/2026" signifie le 1er mars aux États-Unis et le 3 janvier dans la plupart des pays d'Europe.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Rep | Date | Condition | Count | |
| 2 | Ana | 2026-01-05 | From Feb 1 | 4 | |
| 3 | Ben | 2026-01-12 | Cutoff | 2026-03-01 | |
| 4 | Cara | 2026-02-03 | Before the cutoff | 4 | |
| 5 | Dan | 2026-02-18 | On Jan 12 | 1 | |
| 6 | Eva | 2026-03-02 | |||
| 7 | Finn | 2026-03-20 |
=NB.SI(B2:B7;">="&DATE(2026;2;1))E2 compte les quatre dates à partir du 1er février. E4 compte les dates antérieures à la date limite de E3 : mettez 2026-02-01 en E3 et le compte tombe à 2. Compter entre deux dates demande deux conditions, donc NB.SI.ENS : =NB.SI.ENS(B2:B7;">="&DATE(2026;2;1);B2:B7;"<"&DATE(2026;3;1)).
Compter les doublons avec NB.SI
NB.SI de toute la liste contre l'une de ses propres cellules indique combien de fois cette valeur apparaît. Tout ce qui dépasse 1 est un doublon. Verrouillez la liste avec $ pour qu'elle reste en place quand la formule est recopiée vers le bas.
| A | B | C | |
|---|---|---|---|
| 1 | Name | Times | Duplicate? |
| 2 | Ana | 2 | TRUE |
| 3 | Ben | 2 | TRUE |
| 4 | Cara | 1 | FALSE |
| 5 | Ana | 2 | TRUE |
| 6 | Dan | 1 | FALSE |
| 7 | Ben | 2 | TRUE |
| 8 | Eva | 1 | FALSE |
=NB.SI($A$2:$A$8;A2)Ana et Ben apparaissent deux fois, donc leurs lignes affichent 2 et TRUE, et la règle de mise en forme conditionnelle =NB.SI($A$2:$A$8;A2)>1 appliquée à A2:A8 les met en évidence. Remplacez le dernier nom par Cara et Cara s'allume aussi.
=NB.SI($A$2:A2;A2)>1 (seul le début de la plage est verrouillé) compte chaque nom depuis le haut jusqu'à sa propre ligne, et marque donc la deuxième Ana mais pas la première. Cette version signale les copies à supprimer et garde la première occurrence de chaque nom. La méthode complète se trouve sur supprimer les doublons.
Exercice : NB.SI avec une cellule
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Order | Amount | Setting | Value | |
| 2 | A-101 | 120 | Limit | 100 | |
| 3 | A-102 | 45 | Orders over limit | ||
| 4 | A-103 | 310 | |||
| 5 | A-104 | 100 | |||
| 6 | A-105 | 85 | |||
| 7 | A-106 | 140 | |||
| 8 | A-107 | 99 |
À vous : Comptez les commandes de B2:B8 supérieures à la limite indiquée en E2. Écrivez la formule en E3.
Modifiez E2 une fois l'exercice réussi : le compte doit suivre. Une commande d'exactement 100 n'est pas "supérieure à" 100.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Setting | Value | |
| 2 | Apple | Word | apple | |
| 3 | Pear juice | Matches | ||
| 4 | Pineapple | |||
| 5 | Banana | |||
| 6 | Green apple | |||
| 7 | Pear | |||
| 8 | Apple cider |
À vous : Comptez les produits de A2:A8 dont le nom contient, n'importe où, le mot indiqué en D2. Écrivez la formule en D3.
NB.SI avec plusieurs critères
NB.SI prend une seule condition. Pour deux conditions ou plus, il y a deux cas.
Toutes les conditions doivent être vraies (North et plus de 50) : utilisez NB.SI.ENS, qui prend des paires plage et critère.
=COUNTIFS(B2:B7,"North",C2:C7,">50")
L'une ou l'autre condition peut être vraie (North ou South) : additionnez deux NB.SI, ou donnez à un seul NB.SI une liste entre accolades et faites la SOMME (SUM en anglais) des résultats.
=COUNTIF(B2:B7,"North")+COUNTIF(B2:B7,"South")
=SUM(COUNTIF(B2:B7,{"North","South"}))
Dans un Excel français, la première ligne s'écrit =NB.SI(B2:B7;"North")+NB.SI(B2:B7;"South") ; la seconde est donnée ici sous sa forme anglaise, car le séparateur d'une liste entre accolades dépend des paramètres régionaux.
N'utilisez pas la version OU sur une cellule qui pourrait remplir les deux conditions ("*apple*" ou "*green*") : Green apple serait compté deux fois. Pour des conditions qui se recoupent, =SOMMEPROD(--((ESTNUM(CHERCHE("apple";A2:A8))+ESTNUM(CHERCHE("green";A2:A8)))>0)) compte chaque cellule une seule fois.
Compter en respectant la casse
NB.SI ne distingue jamais Apple de apple. Quand la casse compte, comparez avec EXACT, qui est sensible à la casse, et additionnez les résultats VRAI :
=SUMPRODUCT(--EXACT(A2:A8,"Apple"))
Le -- transforme VRAI et FAUX en 1 et 0. SOMMEPROD (SUMPRODUCT en anglais) est l'outil général pour les conditions que NB.SI ne sait pas exprimer.
Pourquoi NB.SI renvoie 0 ou un mauvais compte
- L'opérateur et la cellule sont tous deux entre les guillemets.
">F6"compare au texte F6. Écrivez">"&F6. - Des espaces en trop dans les données. "North " avec une espace finale n'est pas égal à "North". Comptez avec
"North*"pour vérifier, puis nettoyez la colonne avec SUPPRESPACE (TRIM). - Des nombres stockés sous forme de texte. Un critère comme
">50"ne compare que de vrais nombres, donc les nombres saisis comme du texte (alignés à gauche, souvent avec un triangle vert) sont ignorés. Convertissez-les d'abord ; voir nombres stockés sous forme de texte. - La plage pointe vers un autre classeur fermé. NB.SI renvoie
#VALEUR!(en anglais #VALUE!) tant que ce classeur n'est pas ouvert. SOMMEPROD n'a pas cette limite. - Un texte de plus de 255 caractères. NB.SI ne peut pas comparer des chaînes de plus de 255 caractères. Comparez directement :
=SOMMEPROD(--(A2:A8=E2)).
Questions fréquentes
Comment utiliser NB.SI dans Excel ?
Donnez-lui une plage et une condition : =NB.SI(B2:B7;"North") compte les cellules de B2:B7 égales à North, et =NB.SI(C2:C7;">50") compte les nombres supérieurs à 50. Le texte et les comparaisons se mettent entre guillemets.
Comment utiliser NB.SI avec une référence de cellule ?
Reliez l'opérateur et la cellule avec & : =NB.SI(C2:C7;">"&F6) compte les valeurs supérieures au nombre de F6. Écrire ">F6" entre les guillemets compare au texte F6 et renvoie en général 0.
NB.SI est-elle sensible à la casse ?
Non. "apple", "Apple" et "APPLE" comptent les mêmes cellules. Pour un comptage sensible à la casse, utilisez =SOMMEPROD(--EXACT(A2:A8;"Apple")).
Comment utiliser NB.SI avec plusieurs critères ?
Pour des conditions qui doivent toutes être vraies, utilisez NB.SI.ENS : =NB.SI.ENS(B2:B7;"North";C2:C7;">50"). Pour l'une ou l'autre de deux valeurs, additionnez deux NB.SI : =NB.SI(B2:B7;"North")+NB.SI(B2:B7;"South").