NB.SI et NB.SI.ENS dans Excel : compter avec des critères
NB.SI compte les cellules qui correspondent à un critère — texte exact, nombre, comparaison ou joker. NB.SI.ENS permet d'enchaîner plusieurs critères simultanément. Ce sont deux des fonctions les plus utilisées en analyse de données.
NB.SI — un seul critère
=NB.SI(plage; critère)
| Critère | Exemple | Compte… |
|---|---|---|
| Texte exact | =NB.SI(A:A;"Paris") | Cellules égales à "Paris" |
| Nombre | =NB.SI(B:B;100) | Cellules égales à 100 |
| Supérieur à | =NB.SI(B:B;">50") | Valeurs > 50 |
| Inférieur ou égal | =NB.SI(B:B;"<=100") | Valeurs ≤ 100 |
| Différent de | =NB.SI(A:A;"<>Paris") | Cellules ≠ "Paris" |
| Joker commence par | =NB.SI(A:A;"Mar*") | Martin, Marie, Marcel… |
| Joker contient | =NB.SI(A:A;"*excel*") | Toute cellule contenant "excel" |
| Cellules non vides | =NB.SI(A:A;"<>") | Toutes les cellules non vides |
Les opérateurs de comparaison (>, <, >=, <=, <>) doivent être inclus dans des guillemets. Pour comparer à une valeur de cellule : ">"&C1
NB.SI.ENS — plusieurs critères simultanés
=NB.SI.ENS(plage1; critère1; [plage2; critère2]…)
Chaque paire plage/critère s'applique en ET logique. Toutes les conditions doivent être vraies pour qu'une ligne soit comptée.
=NB.SI.ENS(A2:A100;"Nord"; B2:B100;"Produit A")
→ compte les lignes où la colonne A = "Nord" ET la colonne B = "Produit A"
=NB.SI.ENS(A2:A100;"Nord"; C2:C100;">1000")
→ région Nord ET CA supérieur à 1000
🧪 Démo — modifiez les données et le critère
| Région | Statut | CA (€) |
|---|---|---|
NB.SI.ENS résultat
—
Total lignes
—
% représenté
—
—
Compter des cellules vides et non vides
=NB.SI(A2:A100;"") → cellules vides (chaîne vide ou vraiment vides)
=NB.SI(A2:A100;"<>") → cellules non vides
=NBVIDE(A2:A100) → alternative native pour les vides
=NBVAL(A2:A100) → compte toutes les cellules non vides (texte + nombres)
Critère basé sur une autre cellule
=NB.SI(A2:A100;D1) → critère = valeur de D1
=NB.SI(A2:A100;">"&D1) → critère > valeur de D1 (concaténation)
=NB.SI.ENS(A:A;D1; B:B;">"&E1) → deux critères dynamiques
NB.SI sur une plage non contiguë
NB.SI ne peut pas directement compter sur deux plages séparées (ex : A1:A50 et A60:A100). Contournements :
=NB.SI(A1:A50;"Paris")+NB.SI(A60:A100;"Paris") → additionner deux NB.SI
=SOMMEPROD((A1:A100="Paris")*(LIGNE(A1:A100)<>LIGNE(A51:A59))) → SOMMEPROD si la plage exclue est au milieu
NB.SI vs SOMMEPROD pour compter
| NB.SI / NB.SI.ENS | SOMMEPROD | |
|---|---|---|
| Performance | ✅ Rapide | ⚠️ Plus lent sur gros volumes |
| Critères calculés (formules) | ❌ Limité | ✅ Flexibilité totale |
| Conditions OU | ⚠️ Deux NB.SI à additionner | ✅ Natif (+) |
| Lisibilité | ✅ Claire | ⚠️ Syntaxe plus complexe |