Comment utiliser la fonction nb.si.ens en Excel ?
Compter des ventes réalisées dans une région, des dossiers encore ouverts, des salariés d’un service ou des factures comprises dans une période : dès qu’une analyse dépend de plusieurs conditions simultanées, un simple comptage ne suffit plus. La fonction NB.SI.ENS d’Excel répond précisément à ce besoin.
Elle permet de compter les lignes qui respectent tous les critères définis. Bien employée, elle transforme un tableau de suivi en indicateurs fiables, sans filtre manuel ni tableau croisé dynamique pour les demandes les plus courantes. Sa logique est simple ; la rigueur exigée par ses plages, ses opérateurs et ses dates l’est un peu moins.
Voici comment construire des formules robustes, les adapter à vos tableaux et éviter les erreurs qui produisent un résultat nul — ou, plus dangereux, un résultat qui semble plausible mais qui est faux.
NB.SI.ENS : compter quand plusieurs conditions doivent être vraies
NB.SI.ENS compte le nombre de lignes pour lesquelles plusieurs critères sont satisfaits au même moment. Le suffixe « .ENS » signifie que la fonction accepte un ensemble de conditions.
Dans un fichier commercial, elle peut par exemple répondre à cette question : combien de commandes ont été conclues par Léa, dans la région Ouest, pour un montant supérieur ou égal à 1 000 € ? Une ligne ne sera comptée que si elle coche les trois cases.
La fonction applique donc une logique ET :
- critère 1 respecté et critère 2 respecté ;
- critère 3 respecté si vous en ajoutez un ;
- et ainsi de suite pour chaque paire plage/critère.
Syntaxe de NB.SI.ENS dans Excel
Dans la version française d’Excel, la syntaxe est la suivante :
=NB.SI.ENS(plage_critères1; critère1; [plage_critères2; critère2]; ...)
Chaque condition est formée d’une paire :
- plage_critères : la colonne, ou la plage de cellules, dans laquelle Excel doit vérifier une condition ;
- critère : la valeur, le texte, l’opérateur ou la référence de cellule à respecter.
Les arguments entre crochets sont facultatifs, mais les arguments d’une paire ne le sont pas : chaque plage doit toujours être suivie de son critère. Selon vos paramètres régionaux, Excel utilise le plus souvent le point-virgule (;) comme séparateur. Certaines installations utilisent la virgule.
Exemple élémentaire :
=NB.SI.ENS(B2:B500;"Ouest";D2:D500;"Validée")
La formule compte les lignes 2 à 500 pour lesquelles la colonne B contient « Ouest » et la colonne D contient « Validée ».
Le rôle de chaque argument, avec un tableau de ventes
Supposons le tableau suivant : colonne A pour la date, B pour le commercial, C pour la région, D pour le statut et E pour le chiffre d’affaires.
| Question métier | Formule NB.SI.ENS | Ce qui est compté |
|---|---|---|
| Commandes validées dans l’Ouest | =NB.SI.ENS(C2:C500;"Ouest";D2:D500;"Validée") | Les lignes répondant aux deux conditions |
| Ventes de Léa à partir de 1 000 € | =NB.SI.ENS(B2:B500;"Léa";E2:E500;">=1000") | Les ventes de Léa dont le montant atteint le seuil |
| Commandes en attente en janvier 2025 | =NB.SI.ENS(D2:D500;"En attente";A2:A500;">="&DATE(2025;1;1);A2:A500;"<"&DATE(2025;2;1)) | Les commandes situées dans l’intervalle de dates |
| Dossiers sans date de clôture | =NB.SI.ENS(F2:F500;"") | Les cellules réellement vides de la colonne F |
Écrire des critères correctement : texte, nombres, opérateurs et références
La plupart des difficultés viennent non pas de la fonction elle-même, mais de la manière dont le critère est écrit. Excel n’interprète pas de la même façon un texte, un nombre, un opérateur ou le contenu d’une cellule.
Critère texte exact
Un mot ou une expression doivent être placés entre guillemets :
=NB.SI.ENS(D2:D500;"Validée")
Excel ne fait normalement pas de distinction entre majuscules et minuscules : « validée », « Validée » et « VALIDÉE » sont assimilés. En revanche, les espaces parasites, les variantes d’orthographe ou les caractères invisibles importés d’un autre système peuvent fausser le comptage.
Critères numériques et comparaisons
Pour rechercher l’égalité, un nombre peut être indiqué directement :
=NB.SI.ENS(E2:E500;1000)
Pour introduire une comparaison, l’opérateur doit être mis entre guillemets avec le nombre :
- ">1000" : strictement supérieur à 1 000 ;
- ">=1000" : supérieur ou égal à 1 000 ;
- "<500" : inférieur à 500 ;
- "<>0" : différent de zéro.
La formule suivante compte donc les montants situés entre 500 et 2 000 €, bornes incluses :
=NB.SI.ENS(E2:E500;">=500";E2:E500;"<=2000")
Il est parfaitement normal de réutiliser la même plage : chaque occurrence porte une condition complémentaire.
Utiliser une cellule comme seuil : concaténer l’opérateur et la référence
Dans un tableau de bord, il est préférable de saisir le seuil dans une cellule — par exemple H2 — plutôt que de le figer dans la formule. Il faut alors assembler l’opérateur et la référence avec l’esperluette & :
=NB.SI.ENS(E2:E500;">="&H2)
Si H2 contient 1 500, Excel interprète le critère « supérieur ou égal à 1500 ». Sans &, Excel cherchera à lire une expression qui n’est pas un critère valide.
Pour un critère texte contenu dans une cellule, la référence suffit :
=NB.SI.ENS(C2:C500;H3)
Si H3 contient « Ouest », la formule compte les lignes de la région Ouest. Les références absolues, comme $H$3, sont utiles lorsque vous recopiez la formule vers le bas ou vers la droite.
Rechercher une partie de texte avec les caractères génériques
NB.SI.ENS accepte les caractères génériques :
- * remplace n’importe quelle suite de caractères ;
- ? remplace un seul caractère ;
- ~ neutralise le caractère générique qui le suit.
Pour compter toutes les références produit contenant « PRO », utilisez :
=NB.SI.ENS(G2:G500;"*PRO*")
Pour trouver le caractère astérisque lui-même dans un texte, employez "*~**". Cette précision est utile dans des données techniques, des codes articles ou des imports où les caractères spéciaux ne sont pas rares.
Compter dans une période : la méthode fiable pour les dates et les heures
Les dates Excel sont des nombres affichés sous un format de date. Elles peuvent aussi contenir une heure, même si celle-ci n’est pas visible à l’écran. C’est pourquoi un critère du type "<=31/01/2025" peut exclure des enregistrements du 31 janvier comportant une heure, par exemple 31/01/2025 à 14 h 00.
La méthode la plus robuste consiste à définir :
- une borne basse incluse : supérieure ou égale au premier jour ;
- une borne haute exclue : strictement inférieure au premier jour de la période suivante.
=NB.SI.ENS(A2:A500;">="&DATE(2025;1;1);A2:A500;"<"&DATE(2025;2;1))
Cette formule compte toutes les dates de janvier 2025, y compris celles dotées d’une heure. La fonction DATE évite en outre les ambiguïtés de format entre jour/mois/année et mois/jour/année.
Construire une période glissante à partir de cellules
Si H2 contient le premier jour du mois à analyser, une formule dynamique peut être écrite ainsi :
=NB.SI.ENS(A2:A500;">="&H2;A2:A500;"<"&MOIS.DECALER(H2;1))
En changeant H2, vous actualisez immédiatement le mois de référence. Cette approche convient aux reportings récurrents et limite les manipulations dans les formules.
Cellules vides, cellules non vides et résultats de formules
Pour compter les cellules vides dans une plage, utilisez une chaîne vide :
=NB.SI.ENS(F2:F500;"")
Pour compter les cellules non vides :
=NB.SI.ENS(F2:F500;"<>")
Une nuance mérite attention : une cellule contenant une formule qui renvoie "" semble vide à l’écran, mais elle n’est pas toujours traitée de façon identique à une cellule dont le contenu a été effacé. Avant de bâtir un indicateur sensible — taux de dossiers incomplets, contrôle de saisie ou relances — testez la formule sur quelques cas connus de votre fichier.
Les cellules remplies d’espaces ne sont pas vides non plus. Si votre tableau provient d’un export, un nettoyage préalable avec SUPPRESPACE, ou via Power Query pour les sources récurrentes, peut être nécessaire.
Des cas d’usage professionnels concrets
Suivre un pipeline commercial
Une direction commerciale peut compter les opportunités « Qualifiées », attribuées à un commercial donné et dont le montant prévisionnel dépasse un seuil :
=NB.SI.ENS(B2:B1000;$H$2;D2:D1000;"Qualifiée";F2:F1000;">="&$H$3)
H2 contient le nom du commercial et H3 le montant minimal. Le résultat devient un indicateur immédiatement exploitable dans un tableau de bord, sans modifier la structure du fichier.
Contrôler les factures échues non réglées
Avec une colonne pour le statut de paiement et une autre pour la date d’échéance, il est possible de compter les factures à traiter :
=NB.SI.ENS(C2:C800;"Non réglée";E2:E800;"<"&AUJOURDHUI())
La formule évolue chaque jour. Si l’entreprise souhaite inclure les échéances du jour, l’opérateur doit devenir "<="&AUJOURDHUI().
Mesurer l’activité RH sans données nominatives
Dans un suivi de candidatures, NB.SI.ENS peut dénombrer les dossiers reçus sur une période, pour un métier et un statut donnés. Dans un tableau de pilotage partagé, il est souvent préférable d’agréger ces informations plutôt que de diffuser des données individuelles inutiles.
NB.SI.ENS, NB.SI et SOMME.SI.ENS : ne pas choisir la mauvaise fonction
Ces fonctions sont proches par leur nom, mais ne répondent pas à la même question.
| Fonction | Usage | Exemple de question |
|---|---|---|
| NB.SI | Compte selon un seul critère | Combien de commandes sont validées ? |
| NB.SI.ENS | Compte selon plusieurs critères cumulés | Combien de commandes sont validées dans l’Ouest ? |
| SOMME.SI.ENS | Additionne des montants selon plusieurs critères | Quel chiffre d’affaires a été validé dans l’Ouest ? |
| MOYENNE.SI.ENS | Calcule une moyenne selon plusieurs critères | Quel est le panier moyen des commandes validées ? |
Si votre question commence par « combien de lignes », NB.SI.ENS est généralement la bonne fonction. Si elle commence par « quel montant total » ou « quelle moyenne », orientez-vous vers SOMME.SI.ENS ou MOYENNE.SI.ENS.
La limite importante : NB.SI.ENS applique une logique ET, pas OU
NB.SI.ENS est idéale lorsque toutes les conditions doivent être réunies. En revanche, elle ne permet pas directement d’écrire « région Ouest ou région Nord » dans un seul critère simple.
Pour une logique OU entre deux valeurs exclusives dans une même colonne, additionnez deux comptages :
=NB.SI.ENS(C2:C500;"Ouest";D2:D500;"Validée")+NB.SI.ENS(C2:C500;"Nord";D2:D500;"Validée")
Cette technique est sûre ici parce qu’une ligne ne peut pas appartenir simultanément aux régions Ouest et Nord. Si les conditions peuvent se chevaucher, l’addition risque en revanche de compter certaines lignes deux fois. Il faut alors revoir la structure des données, utiliser une colonne d’aide ou envisager une formule plus élaborée.
Quand NB.SI.ENS est particulièrement efficace
- Tableaux structurés avec une ligne par dossier, vente ou événement.
- Indicateurs simples à actualiser automatiquement.
- Contrôles de qualité et détection de cas précis.
- Critères fixes ou pilotés par des cellules.
Quand envisager une autre méthode
- Logiques OU complexes ou conditions qui se chevauchent.
- Critères calculés à partir d’un texte très variable.
- Analyse exploratoire par segment : un tableau croisé dynamique peut être plus rapide.
- Volumes massifs et sources à nettoyer : Power Query peut préparer les données.
Les erreurs les plus fréquentes et comment les corriger
Des plages de tailles différentes
Toutes les plages de critères doivent avoir le même nombre de lignes et la même orientation. Évitez par exemple :
=NB.SI.ENS(B2:B500;"Ouest";D2:D499;"Validée")
La première plage contient 499 cellules, la seconde 498. Excel renverra une erreur ou un résultat non exploitable selon le contexte. Définissez systématiquement les plages à partir de la même ligne de départ et de la même ligne de fin.
Inclure l’en-tête ou utiliser des colonnes entières sans raison
Une formule qui démarre en B1 inclut souvent le titre de colonne. Cela n’est pas nécessairement grave, mais c’est une mauvaise habitude et une source de confusion. Préférez B2:B500 si les données commencent en ligne 2.
Les références de colonnes entières, telles que B:B, fonctionnent dans de nombreux cas, mais peuvent ralentir un classeur chargé, surtout si les formules sont nombreuses. Un tableau Excel structuré est une solution plus pérenne : ses plages s’étendent automatiquement lorsque vous ajoutez des lignes.
Confondre nombre et texte
Un montant importé sous forme de texte, par exemple « 1 250,00 € », peut s’afficher correctement tout en refusant les comparaisons numériques. De même, un code numérique peut être volontairement stocké comme texte. Contrôlez le type réel de vos données avant de conclure que NB.SI.ENS est défaillante.
Oublier les guillemets ou l’esperluette
>=1000 doit être écrit comme un texte de critère : ">=1000". Et si le seuil est dans H2, utilisez ">="&H2. Ce sont deux règles simples qui expliquent une grande partie des résultats inattendus.
Ne pas repérer les espaces et incohérences de libellés
« En attente », « En attente » suivi d’un espace et « attente » sont des catégories différentes pour la qualité des données, même si le résultat visuel semble voisin. Les listes déroulantes de validation de données réduisent fortement ce problème à la saisie.
Rendre vos formules maintenables dans un tableau de bord
Une formule juste aujourd’hui doit encore l’être quand de nouvelles données arriveront. Pour y parvenir, transformez votre plage en tableau avec Ctrl + T, donnez-lui un nom explicite et utilisez des colonnes nommées.
Si votre tableau s’appelle « Ventes », une formule peut prendre cette forme :
=NB.SI.ENS(Ventes[Région];$H$2;Ventes[Statut];$H$3;Ventes[Montant];">="&$H$4)
Elle est plus longue, mais beaucoup plus lisible que des références de cellules. Surtout, les colonnes du tableau s’agrandissent automatiquement avec les nouvelles lignes. Pour une feuille de pilotage utilisée par plusieurs personnes, ce gain de fiabilité est souvent plus important que quelques caractères économisés.
Checklist avant de valider un comptage
- Chaque critère correspond-il à la bonne colonne ?
- Toutes les plages ont-elles exactement la même taille ?
- Les critères textuels et les opérateurs sont-ils entre guillemets ?
- Les comparaisons avec une cellule utilisent-elles & ?
- Les dates sont-elles de vraies dates Excel et la borne haute est-elle correctement définie ?
- Les données comportent-elles des espaces parasites, des doublons ou des libellés incohérents ?
- Le résultat a-t-il été vérifié sur quelques lignes connues, filtrées manuellement ?
- NB.SI.ENS compte les lignes qui respectent plusieurs critères à la fois : sa logique est « ET ».
- Chaque condition exige une paire plage ; critère, et toutes les plages doivent être alignées.
- Pour les seuils et les dates, concaténez l’opérateur à la valeur ou à la cellule avec &.
- Pour une période, préférez une borne de début incluse et le début de la période suivante comme borne de fin exclue.
- Des données propres et un tableau Excel structuré rendent les indicateurs bien plus fiables dans la durée.
Questions fréquentes
On répond à vos questions
Quelle est la différence entre NB.SI et NB.SI.ENS dans Excel ?
NB.SI compte les cellules qui répondent à un seul critère. Par exemple : =NB.SI(D2:D500;"Validée") compte les commandes validées. NB.SI.ENS ajoute plusieurs conditions qui doivent toutes être satisfaites sur une même ligne. Exemple : =NB.SI.ENS(C2:C500;"Ouest";D2:D500;"Validée") compte seulement les commandes à la fois situées dans l’Ouest et validées.
Utilisez NB.SI dès qu’une seule colonne et un seul filtre suffisent. Dès que votre question croise une région, un statut, une date, un commercial, un montant ou toute autre condition supplémentaire, NB.SI.ENS est l’outil adapté.
Comment compter avec NB.SI.ENS entre deux dates ?
La méthode la plus fiable consiste à appliquer deux critères à la même colonne de dates : une borne de début incluse, puis une borne de fin exclue. Pour compter janvier 2025, utilisez par exemple :
=NB.SI.ENS(A2:A500;">="&DATE(2025;1;1);A2:A500;"<"&DATE(2025;2;1))
Cette écriture est préférable à une borne fixée au 31 janvier, car elle inclut aussi les enregistrements qui comportent une heure dans la cellule. Vérifiez également que vos dates ne sont pas stockées sous forme de texte, ce qui empêcherait Excel de réaliser correctement les comparaisons.
Pourquoi ma formule NB.SI.ENS renvoie-t-elle 0 alors que des lignes semblent correspondre ?
Commencez par vérifier la qualité des données. Les causes les plus courantes sont un espace caché dans un libellé, une date enregistrée comme texte, un nombre importé comme texte, ou une faute légère dans le critère. Vérifiez ensuite la formule : toutes les plages doivent avoir la même taille, et les opérateurs doivent être écrits entre guillemets.
Si le seuil est dans une cellule, la syntaxe correcte est par exemple ">="&H2, et non ">=H2". Enfin, filtrez manuellement le tableau sur les conditions recherchées et comparez le nombre de lignes visibles au résultat de la formule : ce test permet d’isoler rapidement une incohérence de données ou de logique.
Peut-on utiliser OU avec NB.SI.ENS ?
NB.SI.ENS applique naturellement une logique ET : tous les critères doivent être vrais. Pour exprimer un OU simple, vous pouvez additionner plusieurs formules. Par exemple, pour compter les commandes validées dans l’Ouest ou le Nord :
=NB.SI.ENS(C2:C500;"Ouest";D2:D500;"Validée")+NB.SI.ENS(C2:C500;"Nord";D2:D500;"Validée")
Cette méthode est fiable lorsque les cas sont mutuellement exclusifs, comme deux régions distinctes. Si une ligne peut satisfaire plusieurs branches de votre logique, elle risque d’être comptée deux fois. Une colonne d’aide, un tableau croisé dynamique ou une formule plus avancée sera alors préférable.
Comment compter les cellules vides ou non vides avec NB.SI.ENS ?
Pour compter les cellules vides d’une plage, utilisez un critère vide : =NB.SI.ENS(F2:F500;""). Pour compter les cellules non vides, utilisez le critère différent de vide : =NB.SI.ENS(F2:F500;"<>").
Restez vigilant avec les cellules qui semblent vides mais contiennent une formule renvoyant "", ou avec celles qui ne contiennent qu’un espace. Ces situations peuvent modifier le résultat selon la structure du fichier. Dans les données importées, il est utile de nettoyer les espaces et de tester la formule sur quelques cellules représentatives avant de l’intégrer à un indicateur de contrôle.