La fonction NB.SI vous permet de compter le nombre de fois qu'un mot, une date, une valeur est présent dans une colonne.
Présentation de la fonction NB.SI
La formule NB.SI ne nécessite que 2 paramètres pour pouvoir fonctionner :
- Une plage de données où se trouve la donnée que vous cherchez à comptabiliser.
- La donnée (ou encore le critère) à rechercher.
=NB.SI(Plage de cellules;Valeur cherchée)
Plusieurs colonnes de sélection
La fonction NB.SI vous permet de faire un dénombre sur une seule colonne. Depuis la version d'Excel 2007, la fonction NB.SI.ENS a été introduite pour pouvoir effectuer un dénombrement sur 255 colonnes
Exemple d'utilisation
Dans le tableau suivant, vous avez une liste d'achat de matériel et vous voulez savoir combien de fois vous avez acheté des crayons.

Comme vous le constatez sur l'image, nous avons 4 fois le mot Crayon dans la liste. C'est cette valeur que nous souhaitons voir s'afficher en B15.
Nous allons alors écrire la formule suivante :
=NB.SI(B3:B12;"Crayon")



Utilisation d'une référence comme critère
Maintenant si au lieu de saisir le nom de la donnée à rechercher vous préférez récupérer la valeur d'une cellule, vous écrirez alors une formule comme ceci.



Ici nous récupérons la valeur en réutilisant la référence de la cellule.
=NB.SI(B3:B12;A15) => 4
Il est impératif que la valeur recherchée dans le tableau soit identique à celle du tableau. ⚠⚠⚠
Dans l'exemple ci-contre, le premier mot "Crayon" commence par un espace et n'est donc pas comptabilisé



Par contre, le dernier ne commence pas par une majuscule et pourtant, il a été compté. La fonction NB.SI ne tient pas compte de la casse (majuscule / miniscule).
Plus grand que / Plus petit que
Si vous souhaitez compter le nombre d'éléments plus grand ou plus petit par rapport à une valeur, il vous suffit d'écrire un test logique pour le deuxième paramètre ;comme >100, >=100, <50, ...
Par exemple, si vous voulez connaître le nombre de commandes d'une quantité supérieure à 80 unités, vous écrirez en cellule B15 la formule suivante :
=NB.SI(C3:C12;">=80")



Tout comme pour du texte, le test doit être mis entre guillemets.
Si vous souhaitez mettre la valeur à tester en paramètre, il faut cette fois, écrire le test avec le symbole & pour séparer le test, écrit entre guillemets, et la valeur en cellule A15.
=NB.SI(C3:C12,">="&A15)
27/03/2023 @ 22:27
je souhaite calculer des noms d'agents de manière individuelle et de façon automatique sur toute l'année à partir d' un planning de travail par ligne par semaine ou par mois. Quelle est la fonction la plus utile et plus rapide. j'utilise aujourd'hui la fonction recherche avec création de plusieurs tableaux ex :
Aurore 1 Aurore 1 Aurore 0 Aurore 0
Aurore(S) 0 Aurore(S) 0 Aurore(J) 1 Aurore(J) 1
Aurore(V) 0 Aurore(V) 0 Aurore(S) 0 Aurore(S) 0
Je ne peux pas utiliser qu'un seul tableau dans lequel je pourrai indiquer la valeur 1 pour chaque situations ex:
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche Total Aurore(S)
Aurore(S) Aurore(J)Aurore(F) Sylvie Sylvie Flavie(J)Céline(SyDimRSo) 8
Il me totalise les différentes situations d'Aurore (S) en totalisant tous les agents en réalité Aurore(s) n'a travaillé qu'une seule fois
Je suis obligé de créer autant de tableaux qu'il y a de situations travail pour avoir un compte juste très laborieux compte tenu qu'il y a beaucoup de situations. MERCI pour votre réponse si j'ai été clair. Cordialement
02/03/2023 @ 18:40
bonjour
j'aimerais svp de l'aide.
j'ai une liste de personne qui va m'a donner la possibilité de savoir si la personne est venue 1 fois, 2 fois, 3 ou plus, mais je seulement les noms propres. est-ce possible d'utiliser un formule pour ne pas compter chaque fois une par une. merci de l'aide.
02/03/2023 @ 18:57
Oui, et c'est exactement la fonction NB.SI qui répond à ce problème
22/12/2021 @ 17:07
Bonjour,
Je souhaiterai utiliser un NB.SI avec multi critères ( : OK, OK en cours ok Validé. ) sur la même plage de sélection. Comment faire ? NB.SI.ensemble ne fonctionne que lorsque la plage est différente.
Merci pour votre retour.
22/12/2021 @ 20:16
C'est la fonction NB.SI.ENS qu'il faut utiliser pour les multicritères
05/12/2021 @ 16:56
Bonjour,
J'ai trouvé vos explications super claires. cependant, connaissant bien la fonction nb.si et nb.si.ens, je recherchais une une utilisation de nb.si dans une autre configuration.
si on reprend votre exemple, imaginons cette fois, que nous voulons compter le nombre de crayons utilisé dans le mois en retournant juste le nombre dans une cellule a coté... ça pourrait être simple, si on avait que des dates dans le même mois... mais imaginons un listing d'achat avec plusieurs date sur plusieurs mois??? comment une fonction nb.si ou nb.si.ens peut faire la différence en ne comptant et en ne retournant dans la cellule adjacente que le nombre de crayons acheté le même mois?
je réfléchie je réfléchie mais sans solution encore!
merci pour votre aide si vous avez la solution ...
bonne fin de w-e à tous!
25/03/2021 @ 11:20
Bonjour, je dois faire une tableau de suivi de facturation. Mon problème est le suivant, dans l'historique j y mais tout le détail des factures et je souhaiterais dans le suivie avoir regrouper les mêmes numéro de facture et avoir dans mon suivi qu'un seul numéro de facture sur une ligne. Après je voudrais calculer le montant de ces factures et y mettre le montant total dans mon suivi
Merci pour votre aide.
09/09/2021 @ 23:41
J'ai le meme soucis, je veux calculer le montant total des cellules qui le meme nom par exemple
CCI 1000
CCI 1000
CED 2000
quelle formule pourrai utiliser pour faire cette somme sans devoir les compter manuellement ?
10/09/2021 @ 06:44
C'est la fonction SOMME.SI ou SOMME.SI.ENS qu'il faut utiliser
27/10/2020 @ 11:38
Bonjour,
Simplement je dois compter le nombre de ligne répondant à des conditions sans compter de doublons. Pour cela j'utilise la fonction FILTRE qui renvoie tous les éléments répondant à mes conditions ensuite j'utilise la formule "Sommeprod(1/nb.si(Filtre(Tableau;condition);Filtre(Tableau;condition))) "
Une erreur apparaît car j'ai l'impression que la fonction nb.si ne prend pas comme argument une matrice mais plutôt une plage de données. J'ai essayé pour vérifier en mettant dans une cellule (disons en A1) la formule Filtre(Tableau;condition) puis j'ai recalculer ma formule en écrivant "Sommeprod(1/nb.si(A1:A100;Filtre(Tableau;condition)))" et là ça fonctionne
Le problème c'est que je dois utiliser cette formule pour plusieurs argument cependant je ne trouve pas ça "propre" de faire plusieurs matrice sur ma feuille juste pour que la fonction nb.si fonctionne. Y a-t-il une solution pour mettre en entrée de nb.si ma fonction filtre ?
Je ne sais pas si mon problème est résoluble mais j'y crois !
Merci pour votre réponse
27/10/2020 @ 17:45
Si vous avez FILTRE, vous avez nécessairement UNIQUE.
C'est plus simple à utiliser que SOMMEPROD sous sa forme matricielle et c'est pour ça que FILTRE et UNIQUE ont été ajoutée.
=NB(UNIQUE(FILTRE(.....)))
27/10/2020 @ 17:53
Rapide et efficace, merci Frédéric !!!
27/10/2020 @ 18:02
De rien,
Je peux savoir les mots clés que vous avez utilisé pour trouver cette "vieille" solution avec SOMMEPROD ? Je vais ré-écrire un article mais avec la nouvelle technique. Les solutions d'il y a 10 ans sont complètement dépassées et il faut les réactualiser avec les nouvelles fonctions. (il faut faire très attention à la date des articles, surtout en informatique)
19/10/2020 @ 16:25
Bonjour,
De beaux exemples, très clairs, mais malheureusement, je ne sais toujours pas quoi faire.
J'ai des données sur deux colonnes. Je souhaite compter le nombre de lignes où la valeur de la colonne B est plus grande que la valeur correspondante dans la colonne A comme dans l'exemple ci-dessous qui devrait donner 2:
A B
44 47
235 193
16 39
1 0
0 0
Merci!
19/10/2020 @ 16:58
Ho c'est facile de résoudre un tel problème. Il faut faire une colonne supplémentaire dans laquelle on construit un test logique entre les 2 valeurs (A2=B2) et ensuite, on applique une fonction NB.SI.ENS sur cette colonne de tests et le critère de recherche c'est VRAI =NB.SI.ENS(C2:C5;VRAI)
29/08/2020 @ 14:15
Bonjour, je ne suis pas du tout un expert et j'ai besoin un peu d'aide .
Je me suis parti un tableau dont je souhaite simplement avoir le nombre de gens qui sont des membres.
C'est pas compliqués, chaque nom j'écris sur une colonne ''oui'' ou ''non''
Je tente calculer le # de gens qui on répondu ''oui'
Ma formule est la suivante: =nb.si(I12:I47;''Oui'')
Rien ne marche, la formule reste encadrée rouge en pointillée
Précisions:
-Mes données non pas d'espace
-Le fichier est sur mon Onedrive (je ne sais pas si cela change quelque chose)
-J'ai tenté de changer le format du nombre en ''standard'' ou en ''texte'', toujours rien
J'ai vu les vidéos sur youtube et pourtant cela semble si simple à faire! 🙁
31/08/2020 @ 08:46
"Encadré rouge" ? Ce n'est pas Excel ça
30/07/2020 @ 15:08
Comment faire si dans la colonne crayon on met 2 fois le nombre crayon pour indiquer que l'on a acheté 2 crayons.
La formule de le compte qu'une seule fois. Comment faire pour qu'elle le compte 2 fois ?
Merci !
20/06/2019 @ 19:38
Voici les conditions dont j ai besoin d aide en Excel on tient compte du sexe et la moyenne de la classe .
Si moy>=10;"admise";"admis"
Si moy >=8; "autorisée";"autorisé "
Si moy <8;"refusée ";"refusé"
On veut taper ces conditions dans cellule de du colone décision, s affiche tjrs erreur quelque soit la fonction si on besoin de votre aide merci!
17/06/2019 @ 16:08
Bonjour,
Merci pour votre retour rapide!! Ça fonctionne bien, merci beaucoup!
17/06/2019 @ 14:52
Bonjour,
J'ai une colonne avec plusieurs dates d'entrée sous forme 01/02/2008 etc ainsi qu' une colonne avec la formule aujourd'hui en B85 pour indiquer la date du jour. J'ai besoin de savoir combien de date sont supérieur à la date d'aujourd'hui. Lorsque je fais NB.SI(J3:J23;">=B85") ça ne fonctionne pas. Quelqu'un sait comment faire cela svp?
Merci d'avance.
Olivia
17/06/2019 @ 15:26
Bonjour,
NB.SI(J3:J23;">="&B85) va fonctionner
13/07/2017 @ 15:23
Bonjour et merci pour ces explications car je fais ce calcul sur mon jeu de donnée mais j'ai vu dans un mémoire une personne à utiliser cette fonction : NB.SI($E218:$ET218;"<200") et moi je pense que cette cette personne veut compter le nombre de fois où il a obtenu des valeurs inférieur à 200. Est ce bien le cas? Merci d'avance de votre réponse
16/07/2017 @ 13:19
Colonne ET, vous êtes sûre ?
Sinon allez voir l'exemple sur la fonction NB.SI.ENS, j'explique exactement ce point
06/11/2015 @ 15:30
E n'arrive pas à faure NB.SI(B2-B11;"<"&2001/10)
03/06/2015 @ 14:05
j'ai essayé ceci mais ça ne marche pas =NB.SI( O2:O134; SI(A134="";I134=""))
03/06/2015 @ 14:00
bonjour, pourrai savoir quel formule utilisé pour compter le nombre de 0 sur une colonne a (qui contient ou 1 ou 0) en isolant les lignes vierges qui affiche 0 à cause d'une formule qui est en rapport avec deux autres colonnes.
19/05/2015 @ 17:00
Je rencontre un problème avec la formule suivante:
=SI(NB.SI(C11;"*HAHA*");"GOOD";"BAD")
Cette formule permet d'afficher "GOOD" ou "BAD" si le texte "HAHA" est présent dans une cellule C11.
Par exemple: Si dans C11 on a "HAHA c'est très drôle", alors ma cellule avec ma formule sortira "GOOD".
Le problème c'est que je suis obligé d'indiquer dans la formule le terme exacte ("HAHA") que souhaite rechercher.
Comment modifier cette formule pour rechercher un terme présent dans une autre cellule, sans avoir besoin d'indiquer "HAHA" dans la formule ?
Exemple: J'ai une cellule A1 qui contient me mot "HAHA".
J'aimerais faire une formule comme ceci:
=SI(NB.SI(C11;"*valeur dans la cellule A1*");"GOOD";"BAD")
Cette formule ne marche pas...comment faire ?
14/06/2017 @ 08:54
Il ne faut pas utiliser la fonction NB.SI mais seulement la fonction SI !
=SI(C11=A1;"GOOD";"BAD")
27/01/2015 @ 17:33
Bonjour
L'exemple =NB.SI(B3:B12;A15) montre comment faire référence à la valeur d'une cellule mais la recette ne marche pas avec l'exemple suivant ou le test se fait avec l'opérateur "<" Y a-t-il une solution et laquelle ?
Merci d'avance
29/01/2015 @ 17:46
Bonjour,
Je viens de compléter l'article avec un exemple qui vous explique comment faire un test en utilisant une valeur inscrite dans une cellule au lieu de la mettre en dur dans la formule.
09/01/2015 @ 21:56
merci je vai les cour advance
14/12/2014 @ 19:33
le plus grand avec la formule max par exemple : =Max(c2:c20)
le plus petit avec la formule Min par exemple : =Min(c2:c15)
26/11/2014 @ 16:21
Peut-on faire un "Plus grand que / Plus petit que" avec le nombre inscrit dans une cellule?
Si oui comment?
Merci
22/07/2013 @ 22:39
c'est genial merci