Aller au contenu principal

Qu'est-ce que la fonction NB.SI.ENS ?

Définition
La fonction NB.SI.ENS compte les cellules d'une ou plusieurs plages qui satisfont simultanément toutes les conditions spécifiées (ET logique). Elle accepte jusqu'à 127 paires plage/critère.

NB.SI.ENS te sert dès que NB.SI ne suffit plus parce que tu dois croiser plusieurs filtres à la fois, plutôt que de filtrer ton tableau à la main ou d'empiler plusieurs NB.SI que tu devrais ensuite recouper toi-même.

Concrètement, c'est elle qui compte les commerciaux du département Nord ayant dépassé leur objectif, les commandes expédiées en janvier, ou les transactions comprises entre deux montants. Une ligne n'est comptée que si toutes tes conditions sont remplies en même temps.

Syntaxe

=NB.SI.ENS(plage1; critère1; [plage2; critère2]; ...)

Clique sur un argument pour aller à son explication.

Toutes les plages de critères doivent avoir exactement le même nombre de lignes et de colonnes, sinon Excel renvoie #VALEUR!. Les plages n'ont pas besoin d'être adjacentes.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction NB.SI.ENS

1

plage1

: la première plage à évaluer

Elle définit les cellules qu'Excel va tester contre critère1. Tu peux utiliser une référence directe comme A2:A100, une colonne entière comme A:A, ou un tableau structuré.

Toutes les plages passées à NB.SI.ENS doivent avoir exactement la même dimension : même nombre de lignes et de colonnes.

2

critère1

: la condition que les cellules de `plage1` doivent respecter pour être comptées

Tu peux utiliser du texte ("Paris"), un nombre (1000), un opérateur de comparaison entre guillemets (">1000"), ou des caractères génériques ("*formation*").

Pour combiner un opérateur et une valeur de cellule, concatène avec & : ">="&B1. L'opérateur reste entre guillemets, la référence en dehors.

3

[plage2; critère2; ...]

: paires supplémentaires plage/critère(facultatif)

Chaque paire ajoute une condition ET : une ligne n'est comptée que si elle satisfait simultanément toutes les conditions. Tu peux en ajouter jusqu'à 127 paires, soit 127 conditions croisées.

Les plages supplémentaires n'ont pas besoin d'être adjacentes à plage1, mais elles doivent avoir exactement le même nombre de lignes.

Attention : NB.SI.ENS applique un ET logique entre toutes les conditions. Pour un OU (compter les lignes qui remplissent AU MOINS une condition), additionne plusieurs NB.SI ou NB.SI.ENS séparés et soustrais les doublons si nécessaire.

Le conseil du pro
Pour compter dans une fourchette, encadre la même plage avec deux bornes : NB.SI.ENS(B:B; « >=1000 »; B:B; « <=5000 ») compte les valeurs entre 1 000 et 5 000 inclus. C'est la façon standard d'écrire un intervalle.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment croiser deux critères avec la fonction NB.SI.ENS

Le point d'activité de lundi arrive et on va te demander si le Premium décolle vraiment dans le Nord. Tes ventes sont listées une par une avec leur région, leur produit, le commercial qui a signé et le montant, et tu veux le nombre de ventes Premium réalisées dans le Nord sans filtrer ton tableau ni compter à la main. La fonction NB.SI.ENS croise les deux conditions et te sort ce compte d'un coup.

Les étapes
  1. 1
    Dans une cellule, écris =NB.SI.ENS(.
  2. 2
    En 1er argument : sélectionne la colonne des régions, A2:A19. C'est sur elle que porte ta première condition.
  3. 3
    En 2ᵉ argument : écris le critère correspondant, "Nord". À ce stade, seules les ventes de cette région restent en lice.
  4. 4
    En 3ᵉ argument : sélectionne la colonne des produits, B2:B19. Elle doit couvrir exactement les mêmes lignes que la première, sinon la fonction renvoie l'erreur #VALEUR!.
  5. 5
    En 4ᵉ argument : écris le second critère, "Premium". Les deux paires sont reliées par un ET : une vente n'est comptée que si elle est dans le Nord et porte sur le produit Premium en même temps.
  6. 6
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=NB.SI.ENS(A2:A19; "Nord"; B2:B19; "Premium")
Explication
La fonction passe les 18 ventes en revue et n'en compte une que si sa région vaut Nord et son produit Premium au même moment. Six lignes cochent les deux cases à la fois : une vente du Nord en Basic est écartée, une vente Premium signée dans le Sud aussi.
Exemple 2

Comment compter le nombre de valeurs dans une fourchette avec la fonction NB.SI.ENS

L'audit interne te réclame le volume des transactions intermédiaires avant vendredi. Tes transactions sont listées avec leur montant, et tu veux le nombre de celles qui tombent entre 1 000 € et 5 000 € inclus, sans toucher au tri du tableau. La fonction NB.SI.ENS encadre la fourchette en testant deux fois la même colonne, une borne en bas et une borne en haut.

Les étapes
  1. 1
    Dans une cellule, écris =NB.SI.ENS(.
  2. 2
    En 1er argument : sélectionne la colonne des montants, B2:B7. C'est sur elle que va porter la borne basse.
  3. 3
    En 2ᵉ argument : écris le critère ">=1000", l'opérateur et la valeur seuil ensemble entre les mêmes guillemets. Seules les transactions à partir de 1 000 € restent retenues.
  4. 4
    En 3ᵉ argument : sélectionne exactement la même plage, B2:B7. Rien n'interdit de tester une colonne deux fois, et c'est même ce qui permet d'encadrer un intervalle.
  5. 5
    En 4ᵉ argument : écris la borne haute, "<=5000". Comme les deux paires sont reliées par un ET, seules les transactions comprises entre les deux seuils sont comptées.
  6. 6
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=NB.SI.ENS(B2:B7; ">=1000"; B2:B7; "<=5000")
Explication
La même colonne de montants est passée au crible deux fois, une fois pour le plancher et une fois pour le plafond, et le ET entre les deux paires ne laisse passer que ce qui rentre dans la fourchette. Trois transactions y sont (2 500 €, 1 000 € et 4 500 €), les bornes étant incluses grâce aux opérateurs >= et <=.
Exemple 3

Comment utiliser des critères dynamiques avec la fonction NB.SI.ENS

Ton tableau de bord doit répondre à n'importe quelle question qu'on te posera en réunion, pas seulement à celle d'aujourd'hui. Tes commandes sont listées avec leur région et leur montant, et tu ranges la région à observer dans la cellule F1 (« Nord ») et le montant plancher dans F2 (10000). La fonction NB.SI.ENS lit ses critères dans ces deux cellules, si bien que le compte se recalcule dès que quelqu'un change un paramètre.

Les étapes
  1. 1
    Dans une cellule, écris =NB.SI.ENS(.
  2. 2
    En 1er argument : sélectionne la colonne des régions, B2:B7.
  3. 3
    En 2ᵉ argument : clique sur la cellule de paramètre F1, au lieu d'écrire « Nord » en dur dans la formule. Un critère texte se passe très bien de guillemets quand il vient d'une cellule.
  4. 4
    En 3ᵉ argument : sélectionne la colonne des montants, C2:C7, qui couvre les mêmes lignes que la précédente.
  5. 5
    En 4ᵉ argument : écris ">="&F2, l'opérateur entre guillemets et la cellule à l'extérieur, les deux collés par une esperluette. C'est la seule écriture qui fait comprendre « supérieur ou égal au contenu de F2 ».
  6. 6
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=NB.SI.ENS(B2:B7; F1; C2:C7; ">="&F2)
Explication
Les deux critères ne sont plus figés dans la formule, la fonction NB.SI.ENS va les lire dans les cellules F1 et F2 (« Nord » et 10000). Deux commandes du Nord atteignent le plancher, d'où ce résultat de 2, et il suffit de taper « Sud » dans F1 pour que le compte se réajuste tout seul.
Exemple 4

Comment compter le nombre de lignes entre deux dates avec les fonctions NB.SI.ENS et DATE

Le bilan du mois part demain matin et il te manque le nombre d'expéditions réellement sorties en janvier. Tes commandes sont listées avec leur date et leur statut, et tu veux ne compter que celles expédiées entre le 1er et le 31 janvier 2024, en laissant de côté celles de décembre, celles de février et celles encore en attente. La fonction NB.SI.ENS empile ici trois conditions, et la fonction DATE lui fournit des bornes qu'Excel reconnaît sans ambiguïté.

Les étapes
  1. 1
    Dans une cellule, écris =NB.SI.ENS(.
  2. 2
    En 1er argument : sélectionne la colonne des dates, B2:B7.
  3. 3
    En 2ᵉ argument : écris la borne de début, ">="&DATE(2024;1;1). La fonction DATE construit un vrai 1er janvier 2024, ce qui évite les mauvaises surprises d'un ">=01/01/2024" qu'Excel peut prendre pour du texte.
  4. 4
    En 3ᵉ argument : sélectionne à nouveau la colonne des dates, B2:B7, pour refermer la fenêtre sur le mois.
  5. 5
    En 4ᵉ argument : écris la borne de fin, "<="&DATE(2024;1;31). Le dernier jour de janvier est construit lui aussi avec la fonction DATE.
  6. 6
    En 5ᵉ argument : sélectionne la colonne des statuts, C2:C7, toujours sur les mêmes lignes que les précédentes.
  7. 7
    En 6ᵉ argument : écris le dernier critère, "Expédiée". Les trois paires sont reliées par un ET : une commande n'est comptée que si elle tombe dans la fenêtre de janvier et qu'elle est bien partie.
  8. 8
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=NB.SI.ENS(B2:B7; ">="&DATE(2024;1;1); B2:B7; "<="&DATE(2024;1;31); C2:C7; "Expédiée")
Explication
Trois paires plage/critère se cumulent : deux bornes qui referment la fenêtre sur janvier 2024, puis le statut. Trois commandes passent le filtre (celles des 15, 25 et 3 janvier), tandis que celle du 5 février sort de la fenêtre, celle du 28 décembre aussi, et celle du 20 janvier est écartée parce qu'elle n'était toujours pas partie.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction NB.SI.ENS

Plages de tailles différentes : #VALEUR!

=NB.SI.ENS(A1:A10; "X"; B1:B15; "Y") provoque une erreur #VALEUR! car A1:A10 (10 lignes) et B1:B15 (15 lignes) n'ont pas la même dimension. NB.SI.ENS exige que toutes les plages de critères soient de même taille.

Solution : Vérifie que toutes tes plages commencent et finissent sur les mêmes numéros de ligne. Si ton tableau a 100 lignes de données, chaque plage doit couvrir exactement ces 100 lignes : A2:A101, B2:B101, C2:C101.

Ordre inversé plage/critère : résultat faux sans erreur

NB.SI.ENS attend toujours la plage EN PREMIER, puis le critère. Si tu inverses par habitude (critère puis plage), Excel peut interpréter une référence comme un critère et renvoyer un résultat incorrect sans message d'erreur.

Solution : Respecte toujours l'ordre plage; critère pour chaque paire. Rappel : c'est différent de SOMME.SI (qui accepte plage; critère; somme_plage), mais identique à SOMME.SI.ENS.

Concaténation opérateur/cellule mal formée : résultat 0

Écrire =NB.SI.ENS(A:A; >B1) sans guillemets autour de l'opérateur renvoie 0 ou une erreur, car Excel interprète >B1 comme une expression booléenne et non comme un critère texte.

Solution : Mets l'opérateur entre guillemets et concatène avec & : =NB.SI.ENS(A:A; ">"&B1). Vérifie aussi que la cellule de référence contient bien une valeur numérique et non du texte.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

NB.SI.ENS vs NB.SI vs SOMME.SI.ENS vs SOMMEPROD

NB.SI.ENS est la fonction de comptage multi-critères standard. Voici quand utiliser chaque alternative.

CritèreNB.SI.ENSNB.SISOMME.SI.ENSSOMMEPROD
RésultatComptageComptageSommeProduit ou comptage
Nombre de critèresJusqu'à 1271 seulJusqu'à 127Illimité
Logique OUNon (ET uniquement)NonNonOui (avec +)
Caractères génériquesOuiOuiOuiNon
Cas d'usage typiqueCompter avec 2+ critères ETCompter avec 1 critèreAdditionner avec 2+ critèresCritères complexes, OU, calculs combinés
Ce qu’il faut retenir
NB.SI.ENS relie toujours ses critères par un ET : une ligne n'est comptée que si elle coche toutes les conditions à la fois. Pour un OU, additionne plusieurs NB.SI séparés et retire les doublons éventuels.
FAQ

Questions fréquentes

NB.SI accepte un seul critère sur une seule plage. NB.SI.ENS permet plusieurs paires plage/critère pour filtrer avec plusieurs conditions simultanées (ET logique). Dès que tu as besoin de croiser au moins deux conditions, utilise NB.SI.ENS.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction NB.SI.ENS : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir