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èreExempleCompte…
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égionStatutCA (€)
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.ENSSOMMEPROD
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

SOMME.SI avancé → SOMMEPROD Fiche NB.SI