=NB.SI.ENS(A2:A7;"North";C2:C7;">50") compte les lignes où la colonne A vaut North et la colonne C dépasse 50. NB.SI.ENS (COUNTIFS en anglais) prend des paires plage et condition, et une ligne n'est comptée que si toutes les conditions sont vraies. 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.ENS(A2:A7;"North";C2:C7;">50").
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Condition | Count | |
| 2 | North | Apple | 120 | North, over 50 | 2 | |
| 3 | South | Pear | 45 | North Apple | 2 | |
| 4 | North | Pear | 80 | North only | 3 | |
| 5 | East | Apple | 55 | |||
| 6 | South | Apple | 200 | |||
| 7 | North | Apple | 30 |
=NB.SI.ENS(A2:A7;"North";C2:C7;">50")Il y a trois lignes North, dont deux dépassent 50, donc F2 affiche 2. Mettez 90 en C7 et la dernière ligne North entre dans le compte. F3 associe deux conditions texte : North et Apple.
Syntaxe de NB.SI.ENS
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
- Chaque condition est une paire : une plage et un critère. Jusqu'à 127 paires sont autorisées.
- Les critères fonctionnent exactement comme ceux de NB.SI :
"North",">50","<>","*apple*", ou une cellule reliée à un opérateur avec&, comme">"&F2. - Toutes les plages doivent avoir la même taille. Elles sont lues ligne par ligne : la première cellule de chaque plage forme une ligne, la deuxième cellule de chaque plage la suivante.
- Les conditions sont reliées par ET. Pour un OU, voir plus bas.
NB.SI.ENS existe dans toutes les versions d'Excel depuis 2007 et dans Google Sheets.
NB.SI.ENS entre deux nombres
Pour compter les valeurs d'une tranche, utilisez deux fois la même plage, une fois avec la borne inférieure et une fois avec la borne supérieure.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Setting | Value | |
| 2 | North | Apple | 120 | Min | 50 | |
| 3 | South | Pear | 45 | Max | 150 | |
| 4 | North | Pear | 80 | Between | 3 | |
| 5 | East | Apple | 55 | |||
| 6 | South | Apple | 200 | |||
| 7 | North | Apple | 30 |
=NB.SI.ENS(C2:C7;">="&F2;C2:C7;"<="&F3)120, 80 et 55 sont compris entre 50 et 150, donc F4 affiche 3. Modifiez les bornes en F2 et F3 et le compte suit. ">=" et "<=" incluent les bornes ; utilisez ">" et "<" pour les exclure.
NB.SI.ENS entre deux dates
Les dates fonctionnent de la même façon. Gardez la date de début et la date de fin dans des cellules et reliez-les aux opérateurs, pour ne jamais taper une date entre les guillemets.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Sales | Date | Setting | Value | |
| 2 | North | 120 | 2026-01-05 | Start | 2026-02-01 | |
| 3 | South | 45 | 2026-01-12 | End | 2026-02-28 | |
| 4 | North | 80 | 2026-02-03 | Orders | 2 | |
| 5 | East | 55 | 2026-02-18 | North orders | 1 | |
| 6 | South | 200 | 2026-03-02 | |||
| 7 | North | 30 | 2026-03-20 |
=NB.SI.ENS(C2:C7;">="&F2;C2:C7;"<="&F3)Deux commandes tombent en février, et l'une d'elles vient de North. F5 contient trois paires : une pour la région et deux pour la période. Si vos dates contiennent une heure (2026-02-28 16:30), "<="&F3 manque tout ce qui suit 0:00 le dernier jour ; utilisez plutôt "<"&F3+1.
NB.SI.ENS avec une logique OU
NB.SI.ENS n'a pas de OU. Pour compter les commandes North ou South supérieures à 50, donnez au critère de région une liste entre accolades. NB.SI.ENS renvoie alors un compte par élément, et SOMME (SUM en anglais) les additionne.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Condition | Count | |
| 2 | North | Apple | 120 | North or South, over 50 | 3 | |
| 3 | South | Pear | 45 | Same, two COUNTIFS | 3 | |
| 4 | North | Pear | 80 | |||
| 5 | East | Apple | 55 | |||
| 6 | South | Apple | 200 | |||
| 7 | North | Apple | 30 |
Les deux formules donnent 3 : deux lignes North et une ligne South supérieures à 50. La version avec accolades est plus courte quand la liste s'allonge. N'utilisez la liste que sur un seul critère. Deux listes dans la même formule associent leurs éléments deux à deux au lieu d'essayer toutes les combinaisons, ce qui est rarement ce que vous voulez.
Quand les éléments sont dans des cellules (par exemple E8:E9), =SOMMEPROD(NB.SI.ENS(A2:A7;E8:E9;C2:C7;">50")) fait la même chose sans accolades.
NB.SI.ENS non vide
"<>" signifie "non vide" et "" signifie "vide" : une colonne de dates d'expédition indique donc quelles commandes sont encore ouvertes.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Order | Shipped | Condition | Count | |
| 2 | North | A-101 | 2026-01-08 | North, shipped | 2 | |
| 3 | South | A-102 | North, not shipped | 1 | ||
| 4 | North | A-103 | 2026-02-06 | |||
| 5 | East | A-104 | 2026-02-20 | |||
| 6 | South | A-105 | ||||
| 7 | North | A-106 |
=NB.SI.ENS(A2:A7;"North";C2:C7;"<>")Deux commandes North ont une date d'expédition et une n'en a pas. Tapez une date en C7 et le compte passe de F3 à F2. Une formule qui renvoie une chaîne vide ("") est comptée par "" et aussi par "<>" ; NB.SI non vide explique comment contourner ce problème.
Exercice : deux conditions
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Condition | Count | |
| 2 | North | Apple | 120 | South Apple | ||
| 3 | South | Pear | 45 | |||
| 4 | North | Pear | 80 | |||
| 5 | East | Apple | 55 | |||
| 6 | South | Apple | 200 | |||
| 7 | North | Apple | 30 | |||
| 8 | South | Apple | 75 |
À vous : Comptez les lignes où la région est South et le produit est Apple. Écrivez la formule en F2.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Sales | Date | Setting | Value | |
| 2 | North | 120 | 2026-01-05 | Start | 2026-01-01 | |
| 3 | South | 145 | 2026-01-12 | End | 2026-02-28 | |
| 4 | North | 80 | 2026-02-03 | Count | ||
| 5 | East | 155 | 2026-02-18 | |||
| 6 | South | 200 | 2026-03-02 | |||
| 7 | North | 30 | 2026-03-20 | |||
| 8 | West | 110 | 2026-02-25 |
À vous : Comptez les commandes datées de F2 à F3 (bornes incluses) dont les ventes atteignent au moins 100. Écrivez la formule en F4.
Pourquoi NB.SI.ENS renvoie #VALEUR! ou 0
- Des plages de tailles différentes.
=NB.SI.ENS(A2:A7;"North";C2:C6;">50")renvoie#VALEUR!(en anglais #VALUE!) parce que A2:A7 compte six cellules et C2:C6 cinq. Faites commencer et finir chaque plage sur les mêmes lignes. - Un ET qui ne peut jamais être vrai.
=NB.SI.ENS(A2:A7;"North";A2:A7;"South")vaut toujours 0 : une cellule ne peut pas être les deux à la fois. C'est un OU, donc utilisez la version avec accolades ci-dessus. - Une date tapée entre les guillemets.
">=1/2/2026"est lue selon l'ordre des dates de votre système. Mettez la date dans une cellule et écrivez">="&F2. - L'opérateur et la cellule entre les guillemets.
">=F2"compare au texte F2. Écrivez">="&F2.
NB.SI.ENS compte des lignes. Pour additionner une colonne sur les mêmes lignes, les arguments sont presque identiques avec SOMME.SI.ENS ; pour les conditions que NB.SI.ENS ne sait pas exprimer (une colonne comparée à une autre, un calcul sur chaque ligne), utilisez SOMMEPROD.
Questions fréquentes
Quelle est la différence entre NB.SI et NB.SI.ENS ?
NB.SI prend une plage et une condition. NB.SI.ENS prend autant de paires plage et condition que nécessaire et compte les lignes où toutes sont vraies : =NB.SI.ENS(A2:A7;"North";C2:C7;">50"). Avec une seule paire, NB.SI.ENS donne le même résultat que NB.SI.
Comment compter entre deux dates avec NB.SI.ENS ?
Utilisez deux fois la colonne des dates, une fois par borne : =NB.SI.ENS(C2:C7;">="&F2;C2:C7;"<="&F3) compte les dates de F2 à F3, bornes incluses.
Comment utiliser NB.SI.ENS avec OU ?
NB.SI.ENS relie toujours ses conditions par ET. Pour un OU, donnez à un critère une liste entre accolades et additionnez les résultats. En forme anglaise : =SUM(COUNTIFS(A2:A7,{"North","South"},C2:C7,">50")).
Pourquoi NB.SI.ENS renvoie-t-elle #VALEUR! ?
Les plages n'ont pas la même taille. Toutes les plages de NB.SI.ENS doivent avoir le même nombre de lignes et de colonnes, donc A2:A7 ne peut pas être associée à C2:C6.
Comment compter les valeurs comprises entre deux nombres avec NB.SI.ENS ?
Utilisez deux fois la même plage, une fois par borne : =NB.SI.ENS(C2:C7;">=50";C2:C7;"<=150") compte les valeurs de 50 à 150, bornes incluses. Utilisez ">" et "<" pour exclure les bornes.