Condition

Fonction NB.SI

Temps de lecture 2 minutes

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.

Fonction NB.SI compte le nombre de fois qu'un critère est présent dans une liste

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")

Le mot crayon est présent 4 fois dans notre liste

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.

La fonction le contenu de la cellule A15 comme élément de recherche

Ici nous récupérons la valeur en réutilisant la référence de la cellule.

=NB.SI(B3:B12;A15)

Il est impératif que la valeur recherchée dans le tableau soit identique à celles du tableau. ⚠⚠⚠

Dans l'exemple ci-contre, le premier mot "Crayon" commence par un espace et n'est donc pas comptabilisé 😣😡

Le premier mot "Crayon" commence par un espace et donc il n'est 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.

Plus grand que / Plus petit que

Si vous souhaitez compter le nombre d'éléments plus grand (ou plus petit) qu'une certaine valeur, il vous suffit d'écrire comme second paramètre un test logique (comme >100, >=100, <50, ...). Pour connaître l'ensemble des tests logiques, reportez-vous à la page suivante.

Par exemple, si vous voulez connaître le nombre de commande d'une quantité supérieure à 80 unités, vous écrirez en cellule B15 la formule suivante

=NB.SI(C3:C12;">=80")

Formule pour trouver les cellules avec une valeur supérieur à 80

Comme vous le constatez, tout comme pour du texte, le test doit être mis entre guillemets comme si vous écrivez la valeur en dur.

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)

Related posts

Rechercher les doublons par formule

Frédéric LE GUEN

Conserver la dernière mise à jour des données

Frédéric LE GUEN

Fonction SOMME.SI

Frédéric LE GUEN

26 commentaires

Yassine 27/10/2020 at 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

Répondre
Frédéric LE GUEN 27/10/2020 at 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(.....)))

Répondre
Yassine 27/10/2020 at 17:53

Rapide et efficace, merci Frédéric !!!

Répondre
Frédéric LE GUEN 27/10/2020 at 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)

Répondre
Jacques 19/10/2020 at 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!

Répondre
Frédéric LE GUEN 19/10/2020 at 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)

Répondre
TONY 29/08/2020 at 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! :(

Répondre
Frédéric LE GUEN 31/08/2020 at 08:46

"Encadré rouge" ? Ce n'est pas Excel ça

Répondre
LV 30/07/2020 at 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 !

Répondre
Aboubacar Youssouf 20/06/2019 at 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!

Répondre
Olivia 17/06/2019 at 16:08

Bonjour,

Merci pour votre retour rapide!! Ça fonctionne bien, merci beaucoup!

Répondre
Olivia 17/06/2019 at 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

Répondre
Frédéric LE GUEN 17/06/2019 at 15:26

Bonjour,
NB.SI(J3:J23;">="&B85) va fonctionner

Répondre
JOJO 13/07/2017 at 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

Répondre
Frédéric LE GUEN 16/07/2017 at 13:19

Colonne ET, vous êtes sûre ?
Sinon allez voir l'exemple sur la fonction NB.SI.ENS, j'explique exactement ce point

Répondre
sunpicks 06/11/2015 at 15:30

E n'arrive pas à faure NB.SI(B2-B11;"<"&2001/10)

Répondre
didine 03/06/2015 at 14:05

j'ai essayé ceci mais ça ne marche pas =NB.SI( O2:O134; SI(A134="";I134=""))

Répondre
didine 03/06/2015 at 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.

Répondre
Guix 19/05/2015 at 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 ?

Répondre
OC 14/06/2017 at 08:54

Il ne faut pas utiliser la fonction NB.SI mais seulement la fonction SI !

=SI(C11=A1;"GOOD";"BAD")

Répondre
Anonyme 27/01/2015 at 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

Répondre
Frédéric LE GUEN 29/01/2015 at 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.

Répondre
bial excel 09/01/2015 at 21:56

merci je vai les cour advance

Répondre
Leader_DZ 14/12/2014 at 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)

Répondre
Séb 26/11/2014 at 16:21

Peut-on faire un "Plus grand que / Plus petit que" avec le nombre inscrit dans une cellule?
Si oui comment?
Merci

Répondre
Anonyme 22/07/2013 at 22:39

c'est genial merci

Répondre

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Ce site utilise des cookies pour améliorer votre expérience et vos recherches. Nous pensons que vous êtes dʼaccord sur ce principe mais vous pouvez refuser cette option. Accepter Continuer

Privacy & Cookies Policy