La fonction NB.SI: 16 exemples d'utilisation

Dans l’article suivant de la formation Excel, vous allez découvrir 16 exemples qui expliquent comment utiliser la fonction NB.SI, et ceci selon le nombre de critères utilisés et selon leurs types : texte, nombre, date, valeur logique ou pour identifier des doublons dans des plages de cellules.

La fonction NB.SI


Comme nous le mentionnons toujours dans ce blog, lorsqu’une fonction comporte dans son nom le mot SI, cela signifie qu’elle sera effectuée en répondant à un ou plusieurs critères (Fonctions conditionnelles).

La fonction NB.SI permet donc de compter le nombre de cellules en répondant à un critère qui peut être une valeur textuelle, numérique, date ou logique …
La syntaxe de la fonction NB.SI est : NB.SI(plage; critères)
Pour mieux utiliser la fonction NB.SI, suivez avec moi ces différents exemples d’utilisation de cette fonction :

Vidéo courte

Je vous propose tout d'abord de découvrir rapidement comment utiliser la fonction NB.SI à travers cette courte vidéo :

Utiliser la fonction NB.SI avec un seul critère

Utilisation d’un critère textuel

Voici un tableau de ventes réalisées par différents vendeurs :

Liste des vendeurs


Nous voulons par exemple compter le nombre de ventes réalisées par un vendeur sélectionné.
Choisissez par exemple le vendeur : Sergio et utilisez la fonction NB.SI pour effectuer le calcul souhaité :
  • Sélectionnez une cellule vide et tapez la formule suivante : =NB.SI(A2:A14;"Sergio")
  • Le nom Sergio est mis entre guillemets puisque son type de données est texte, et bien sûr la plage de critères est la colonne Vendeurs : A2:A14
Exemple de la fonction NB.SI

  • la fonction NB.SI indique donc que 3 cellules dans la plage de cellules A2:A14 qui contiennent le nom Sergio.

Résultat renvoyé par de la fonction NB.SI
  • Si vous remplacez Sergio par Sophie, vous allez obtenir 2.
Exemple 2 fonction NB.SI



Note : Vous pouvez soit entrer le nom Sophie directement, soit sélectionner la cellule contenant ce nom. Votre formule pourra s’écrire alors de deux façons : =NB.SI(A2:A14;"Sophie") ou =NB.SI(A2:A14;A10)
Remarquez également que dans ce cas, la référence de cellule A10 n’est pas mise entre guillemets.

Utilisation de l’astérisque

Exemple 1 : Compter le nombre de cellules contenant des noms commençant par « S »

Sélectionnez une cellule vide et tapez la formule suivante : =NB.SI(A2:A14;"S*")
Dans cet exemple l’astérisque remplace tout ce qui vient après la lettre S, et comme vous le remarquez, Excel affiche le nombre 6.

Critère avec astérisque à la fin dans NB.SI


Exemple 2 : Compter le nombre de cellules contenant des noms qui se terminent par « a »

  • La fonction NB.SI sera écrite de la façon suivante : =NB.SI(A2:A14;"*a")
  • Ici l’astérisque remplacent tous les caractères qui se trouvent avant la lettre « a »
  • Excel affiche le nombre 3.
Critère avec astérisque au début dans NB.SI



Exemple 3 : Compter le nombre de cellules contenant un nom ou une expression…

Par exemple dans le tableau suivant, vous avez des cellules qui contiennent le nom Rico dont nous voulons compter leur nombre :
Sélectionnez une cellule vide et tapez la formule suivante : =NB.SI(A2:A14;"*rico*")
Nous avons mis donc le nom Rico entre deux astérisques parce qu’il y a des cellules où le nom complet commence par Rico et une cellule où  Rico est écrit en dernier.

Critère avec nom entre deux astérisques dans NB.SI


Note : Que vous écrivez « Rico » ou « rico » Excel renvoie le même résultat puisqu’on n’est pas obligé à respecter la casse en entrant les arguments de la fonction NB.SI.

Utilisation des opérateurs de comparaison dans les arguments de la fonction NB.SI

Exemple 1 : Egal à un nombre exact

A partir du tableau suivant vous allez calculer le nombre de personnes âgées de 33 ans:
  • Sélectionnez une cellule et entrez la fonction NB.SI comme suit : =NB.SI(B2:B14;33)
Fonction NB.SI avec critère numérique

  • Vous avez donc 4 personnes qui ont l’âge de 33 ans.

Note : Remarquez que le critère 33 est écrit sans guillemets parce que c’est un nombre et pas un texte.

Supérieur ou inférieur

Exemple 1 : Compter le nombre de cellules qui ont un montant supérieur à 1000 euros

  • Entrez la formule suivante dans une cellule : =NB.SI(C2:C14;">1000")
Critère avec operateur superieur dans NB.SI

  • Excel affiche 13 comme résultat de cette formule.

Note : Si vous avez bien remarqué, l’argument >1000 est écrit entre guillemets. Notez donc que lorsque vous insérez des nombres accompagnés des opérateurs de comparaisons vous devez toujours les mettre entre guillemets.

Exemple 2 : Compter le nombre de cellules contenant un montant inférieur à 2500 Euros

La fonction NB.SI sera utilisée de la façon suivante: 
=NB.SI(C2:C14;"<2500")

Critère avec operateur inférieur dans NB.SI


Utilisation de la date comme critère

Exemple 1 : Compter le nombre de cellules contenant une date précise

Dans cet exemple vous allez utiliser la fonction NB.SI pour trouver le nombre de cellules qui contiennent la date 06/04/2017 :

  • Vous pouvez donc écrire la formule suivante : =NB.SI(B2:B14;"06/04/2017")
  • Attention : Mettez le critère date entre guillemets.

NB.SI avec critère Date


Comme vous pouvez aussi taper la formule suivante en se servant de la fonction DATE
=NB.SI(B2:B14;DATE(2017;4;6))
Les arguments de la fonction DATE sont successivement Année, Mois et Jour séparés bien sûr par des points-virgules.

Integration de la fonction DATE dans NB.SI


Exemple 2 : compter le nombre de cellules contenant des dates inférieures ou égales à 05/04/2017

Entrez la fonction NB.SI suivante dans une cellule vide : 
=NB.SI(B2:B14;"<=05/04/2017")

NB.SI inférieure à une date


Exemple 3 : compter le nombre de cellules contenant des dates supérieures ou égales à 05/04/2017

Entrez la formule suivante dans une cellule vide : =NB.SI(B2:B14;">=05/04/2017")

NB.SI supérieur à une date


Exemple 4 : Compter le nombre de cellules contenant des dates inférieures à la date d’aujourd’hui de 31 jours

Utilisez donc la fonction NB.SI de cette façon en intégrant la fonction AUJOURDHUI()
=NB.SI(B2:B14;"<"&AUJOURDHUI()-31)

NB.SI avec critère inférieur à aujrdhui de 31 jours


Exemple 5 : Compter le nombre de cellules contenant des dates inférieures à la date d’aujourd’hui de 3 mois :


  • Vous pouvez tapez tout simplement : =NB.SI(B2:B14;"<"&AUJOURDHUI()-90)

NB.SI avec critère inférieur à aujrdhui de 90 jours


AUJOURDHUI()-90 : renvoie la date d'aujourd’hui moins 90 jours (équivalent à 3 mois).


  • Ou bien intégrez la fonction DATE dans la fonction NB.SI de la façon suivante et ceci en supposant que la date d’aujourd’hui est le 06/04/2017
=NB.SI(B2:B14;"<"&DATE(2017;4 ;6)-90)


  • Et si vous voulez que le calcul soit effectué automatiquement et mis à jour, entrez la formule comme suit :
=NB.SI(B2:B14;"<"&DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())-3;JOUR(AUJOURDHUI())))

NB.SI avec critère date inférieur à 3 mois


Expliquons un peu ce qui se passe là !!!

Nous avons montré précédemment que la fonction DATE contient trois arguments : Année, Mois et Jour. Voici sa syntaxe : DATE(année;mois;jour)

Alors, pour renvoyer l’année qui correspond à la date d’aujourd’hui nous avons utilisé une autre fonction qui est ANNEE en y intégrant la fonction AUJOURDHUI() qui renvoie elle aussi la date d’aujourd’hui : 06/04/2017

La fonction ANNEE(AUJOURDHUI()) est pareille donc à : ANNEE("06/04/2017") et renvoie 2017.

Fonction ANNEE


Pour renvoyer le mois correspondant à la date d’aujourd’hui, nous avons utilisé la fonction MOIS.
La formule MOIS(AUJOURDHUI()) renvoie le mois 4 de la date actuelle 06/04/2017.

Fonction MOIS


Et puisque nous cherchons les dates inférieures à la date d’aujourd’hui de 3 mois, nous avons tapé :  MOIS(AUJOURDHUI())-3 ce qui renvoie le mois 1 (Janvier).

Fonction MOIS exemple


Il nous reste enfin de déterminer le jour de la date d’aujourd’hui, alors nous avons utilisé la fonction JOUR :    JOUR(AUJOURDHUI()) renvoie bien sûr 6

Fonction JOUR


Alors et lorsque vous ouvrez votre classeur, votre formule destinée à compter le nombre de cellules contenants des dates inférieures à la date d’aujourd’hui de 3 mois sera mise à jour automatiquement et prend en compte l’actualisation de la date d’aujourd’hui !

Utiliser la fonction NB.SI avec plusieurs critères

Exemple 1 : Compter le nombre de cellules contenant « Sophie » et le nombre de cellules contenant « Sergio » en une seule formule

Si vous reprenez le premier exemple en début de cet article, vous avez vu que nous avons entré la formule NB.SI(A2:A14;"Sergio") pour compter le nombre de cellules contenant « Sergio » et la formule NB.SI(A2:A14;"Sophie") pour compter le nombre de cellules contenant « Sophie ».

Maintenant si nous voulons compter le nombre de fois que ces deux vendeurs ont vendu, nous allons utiliser la fonction NB.SI de la façon suivante en additionnant les résultats des deux formules précédentes :

= NB.SI(A2:A14;"Sergio")+ NB.SI(A2:A14;"Sophie")

NB.SI avec plusieurs critères


Dans cet exemple vous voyez que nous avons utilisés deux critères, si vous voulez en ajouter un autre tapez l’opérateur d’addition et entrez la fonction NB.SI pour le nouveau critère et ainsi de suite.

Exemple 2 : Compter le nombre de montants supérieurs à 1000 euros et inférieurs à 3000 euros

Les deux formules que nous pouvons utiliser se sont:
  • =NB.SI(B2:B14;">1000") qui renvoie le nombre de montants supérieurs à 1000 Euros.
  • Et =NB.SI(B2:B14;"<3000") qui renvoie le nombre de montants inférieurs à 3000 Euros.
Nous allons donc utiliser ces deux formules dans une opération de soustraction mais avec une toute petite modification pour avoir un résultat correct (Je vous laisse la découvrir ;) ) :

Voici notre formule alors :
=NB.SI(B2:B14;">1000")-NB.SI(B2:B14;">3000")

NB.SI avec deux critères superieur et inferieur


Compter le nombre de doublons

Exemple 1 : Compter le nombre de doublons dans la même colonne

Une autre possibilité que fournit l’utilisation de la fonction NB.SI est de trouver le nombre de doublons dans une plage de cellules.

Reprenons encore notre exemple des noms de vendeurs, et essayons de trouver les noms similaires dans la plage A2:A14 en utilisant NB.SI:
  • Sélectionnez la cellule B2 et entrez la formule suivante : =NB.SI($A$2:$A$14;A2)>1
  • Si la valeur contenue dans la cellule A2 est répétée plus d’une fois dans la plage de cellules A2 :A14, Excel affichera VRAI sinon il affichera FAUX.
  • Copiez la formule dans les cellules de B2 à B14, et voici ce que vous allez obtenir :

NB.SI identifier les doublons



  • Pour calculer ensuite le nombre de cellules contenant les doublons, entrez la formule suivante :
=NB.SI(B2:B14;VRAI)

Compter nombre de doublons avec NB.SI


Note : Remarquez que la valeur logique VRAI est saisie sans guillemets.

Il y a une autre solution pour ce faire également, qui consiste à utiliser NB.SI intégrée dans la fonction SOMMEPROD.

Voici comment procéder:
  • Sélectionnez une cellule vide et entrez la formule suivante (Faites attention à l'utilisation des parenthèses) :
=SOMMEPROD((NB.SI(A2:A14;A2:A14)>1)*(A2:A14<>""))

NB.SI integrée dans SOMMEPROD pour trouver le nombre de doublons

  • Le résultat est le même : 5 doublons aussi en total.
Note : pour plus de détails sur l’utilisation de cette syntaxe de la fonction SOMMEPROD, visitez le lien suivant : Moyenne pondérée avec condition

Exemple 2 : Compter le nombre de doublons dans deux colonnes

Les deux colonnes A et B contiennent des noms différents, cependant il y en a quelques-uns qui sont similaires dans les deux colonnes:
  • Entrez la formule suivante pour calculer le nombre de ces doublons :
=SOMMEPROD((NB.SI(A1:A13;B1:B13)>0)*(B1:B13<>""))

Nombre de doublons dans deux colonnes

  • NB.SI(A1:A13;B1:B13)>0: l’utilisation de NB.SI dans ce cas (avec la condition >0 et non >1) permet de calculer le nombre de noms de la plage A1:A13 qui se répètent au moins une fois dans la plage B1:B13.
  • Et pour que le calcul s’effectue sans erreur, la plage B1:B13 ne doit pas être vide, c’est pourquoi que nous avons entré ce test logique B1:B13<>"".


PARTAGEZ
    Blogger Comment
    Facebook Comment

84 commentaires:

  1. Exemple 1 : Compter le nombre de cellules contenant « Sophie » et « Sergio »
    ne serait il pas plus juste de mettre 'ou' a la place de 'et'

    RépondreSupprimer
    Réponses
    1. Merci pour votre remarque. J'ai fait une petite modification qui peut être plus compréhensible.

      Supprimer
  2. Et si on veut calculer le nombre de nom dans une cellule par exemple ici il y en a 13 c est quoi la formule merci

    RépondreSupprimer
    Réponses
    1. Si vous voulez trouver le nombre de chaque nom, vous pouvez créer une liste déroulante et saisir une formule avec une seule "nb.si" et la cellule contenant cette liste déroulante sera comme référence pour le critère.

      Supprimer
  3. Mes félicitations! Ce cours est très instructifs et bien fait. Merci

    RépondreSupprimer
  4. Bonjour moi je voudrais compter le nombre de cellule avec un chiffre supérieur aux autres cellule qui sont repérer avec un critère . merci

    RépondreSupprimer
  5. veuillez m'envoyer les éléments avec nbsivide dans une délibération sous les critères imbessile, double, satisfaction, distincion,...

    RépondreSupprimer
  6. Bonjour. Est-il possible pour cette fonction de sélectionner des cellules non adjacentes? J'ai essayé avec des ";" et avec la touche "Ctrl" mais ça ne marche pas.

    RépondreSupprimer
    Réponses
    1. Salut,
      Essayez avec cette formule : =SOMME(NB.SI(INDIRECT({"plage1";"plage2"});critère))

      en commençant par taper: =SOMME(NB.SI(INDIRECT(plage1;plage2);critère))
      puis vous ajoutez les guillemets
      =SOMME(NB.SI(INDIRECT("plage1";"plage2");critère))
      et enfin les accolades
      ensuite validez par Entrée

      Supprimer
    2. Bonjour,
      Merci pour votre message.
      Si je vous ai bien compris, voici ce que cela donne ds mon cas:

      =somme(nb.si(indirect({"F6"};{"H6"};{"J6"};{"L6"};{"N6"};{"P6"};{"R6"};{"T6"};{"V6"};{"X6"};{"Z6"};{"AB6"};{"AD6"});>0))

      ...mais je vois apparaître un message d'erreur mentionnant un "nombre trop important d'arguments pour cette fonction".

      Supprimer
    3. Bonjour, Vous devez mettre seulement deux accolades et mette le critère entre guillemets, voici votre formule corrigée:
      =SOMME(NB.SI(INDIRECT({"F6";"H6";"J6";"L6";"N6";"P6";"R6";"T6";"V6";"X6";"Z6";"AB6";"AD6"});">0"))

      Supprimer
    4. Bonjour
      Merci pour tes conseils.
      Perso j'ai 42 cellules à prendre en compte . Voilà ce que j'ai tapé, mais cela ne fonctionne pas. Il affiche: trop d'argument.....
      =SOMME(NB.SI(INDIRECT({"'Mai 2020'!C7";"'Mai 2020'!G7";"'Mai 2020'!K7";"'Mai 2020'!O7";"'Mai 2020'!S7";"'Mai 2020'!W7";"'Mai 2020'!AA7";"'Mai 2020'!AG7";"'Mai 2020'!AK7";"'Mai 2020'!AO7";"'Mai 2020'!AS7";"'Mai 2020'!AW7";"'Mai 2020'!BA7";"'Mai 2020'!BE7";"'Mai 2020'!BK7";"'Mai 2020'!BO7";"'Mai 2020'!BS7";"'Mai 2020'!BW7";"'Mai 2020'!CA7";"'Mai 2020'!CE7";"'Mai 2020'!CI7";"'Mai 2020'!CO7;"'Mai 2020'!CS7";"'Mai 2020'!CW7";"'Mai 2020'!DA7";"'Mai 2020'!DE7";"'Mai 2020'!DI7";"'Mai 2020'!DM7";"'Mai 2020'!DS7";"'Mai 2020'!DW7";"'Mai 2020'!EA7";"'Mai 2020'!EE7";"'Mai 2020'!EI7";"'Mai 2020'!EM7";"'Mai 2020'!EQ7";"'Mai 2020'!EW7";"'Mai 2020'!FA7";"'Mai 2020'!FE7";"'Mai 2020'!FI7";"'Mai 2020'!FM7";"'Mai 2020'!FQ7";"'Mai 2020'!FU7"});"<08:00"))

      Supprimer
  7. Bonjour,
    Double merci: pour la correction. Et pour la formule qui fonctionne en effet. Il est étonnant qu'il n'y ait rien de plus "simple" pour ce qui semble être juste une sélection de cellules. Sans doute vaut-il mieux alors agencer le tableau autrement lors de sa création.
    Bonne journée.

    RépondreSupprimer
  8. Bonjour. Cela n'a sans doute rien à voir avec Excel proprement-dit mais de façon intermittante et sans action voulue de ma part, une page Excel vierge s'ouvre spontanément à l'allumage de mon pc. J'ai vérifié via msconfig si Excel se trouvait dans les applications au "démarrage", ce n'est pas le cas. Peut-on agir pour éviter ce désagrément?

    RépondreSupprimer
    Réponses
    1. Bonjour, essayez d'afficher les paramètres de windows puis cliquez sur Comptes, et sélectionnez Options de connexions, et sous Confidentialité désactivez le deuxième choix : Utiliser mes infos de connexions pour....

      J'espère que ça marchera pour vous!
      J'attendrai votre retour!

      Supprimer
  9. Bonjour,
    Navré pour ce délai. Le problème est inconstant. J'ai néanmoins appliqué votre conseil et vous aviserai des suites. Je vous soumets un autre problème: à l'ouverture d'un fichier Excel stocké dans une "DropBox", le fichier, bien à jour au vu de la date de dernière modification, s'ouvre sur une page bleue inutilisable. Quelle peut être la cause de ce désagrément?

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Je n'ai pas vraiment d'idée sur ce problème. Mais vous pouvez essayer de contacter le service DropBox, ils pourraient vous donner une solution. voici le lien de contact
      https://www.dropbox.com/support/login

      Supprimer
  10. Merci. Et pour revenir au problème précédent. A priori disparu. Encore merci.

    RépondreSupprimer
  11. Bonjour,
    Est-il possible de remplacer le critère par une valeur contenue dans une cellule associée aux signes < ou > ?
    Par exemple NB.SI(maPlage;"<"&$E$2) pour calculer le nombre de factures dont le montant est inférieur à la somme contenue dans la cellule E2 (cette formule semble ne pas donner le résultat attendu).
    Merci pour votre aide !

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Oui normalement.
      Est-ce la plage que vous sélectionnez est la plage des montants?!

      Supprimer
    2. Bonjour,
      Mea culpa : la fonction indiquée fonctionne correctement, c'est le format de la cellule qui ne permettait pas de lire la valeur correctement (erreur stupide !).
      La plage 'maPlage' correspond bien à celle des montants.
      Merci !

      Supprimer
    3. :) C'est tout à fait normal, ça arrive à nous tous.

      Supprimer
  12. Bonjour,
    Déjà bravo pour l'article, mais je cherchais le point suivant (selon moi) vos points 2 et 3 à savoir comment faire une somme.si sur une fourchette de dates? Par exemple pour compter les occurrences par trimestre >01/01/20 et <01/04/20 ainsi de suite.

    RépondreSupprimer
    Réponses
    1. Bonjour, vous pouvez utiliser la fonction SOMME.SI.ENS pour faire la somme en répondant à plusieurs critères:
      Voici un exemple de formule SOMME.SI.ENS(C2:C11;B2:B11;"<01/04/2019";B2:B11;">=01/01/2019")
      C2:C11 représente la plage des nombres à additionner.
      B2:B11 représente la plage des dates, que j'ai répétée deux fois car j'ai deux critères de recherches: Date inférieure à 01/04/2019 et date supérieure ou égale à 01/01/2019 (1er trimestre)

      Supprimer
  13. Bonjour et merci pour votre tutoriel.
    Peut on copier un critère textuel d'une autre case?
    L'idée étant de faire deux colonne, la première avec le critère textuel, et la seconde avec le résultat de somme.si
    Cela me permettrait de tirer la formule plutot que de retaper 50 prénoms :/
    Merci d'avance

    RépondreSupprimer
    Réponses
    1. Vous indiquez comme critère de la fonction somme.si, la référence de la cellule contenant le critère textuel. Figez aussi la référence de la cellule si vous voulez utiliser le même critère dans les formules copiées.

      Supprimer
  14. Hello , merci pour votre tutoriel.
    J'ai créé un fichier avec une liste déroulante : traité et oui

    J'aimerais avoir la fonction qui me permettra de compter le nombre de cas traité dans la plage sélectionner et en soustraire quand Oui est sélectionné dans la liste déroulante.

    RépondreSupprimer
    Réponses
    1. Bonjour,
      essayez avec ceci
      =NB.SI(plage;"traité")-NB.SI(plage;cellule_liste_déroulante)
      cellule_liste_déroulante égal dans ce cas Oui

      Supprimer
  15. Bonjour,

    Je dispose d'une base de données dans laquelle, dans une même cellule, il est mentionné deux éléments auxquels ma fonction NB.SI fait référence.
    Par exemple, dans une cellule, j'ai "pomme, fleur, poire" et dans ma fonction NB.SI j'ai comme critère pomme et poire. Ainsi, cette cellule va compter pour 2. Or je souhaiterai qu'une cellule ne puise pas compter plus que 1 bien qu'il y ait deux éléments auquel la fonction fait référence. Comment dois-je procéder ? Merci par avance.

    Ainsi, sur une même cellule,

    RépondreSupprimer
    Réponses
    1. Pardon je n'ai pas bien compris. Pourriez-vous uploader votre fichier ici https://www.cjoint.com/ et m'envoyer le lien.

      Supprimer
  16. C'est vrai que c'est un problème difficile à décrire (et pourtant, le fichier est relativement simple). J'ai donc fait un fichier de test (ma question étant récurrente, un exemple “basique” fait l'affaire). Vous le trouverez là: https://www.cjoint.com/c/JEyjPwEQXz6

    Dans cet exemple, les colonnes B, C, D et E ont des formules (dans le tableau) permettant d'afficher combien de fois chaque lettre apparaît en xème position de la plage de valeurs (1ère place pour la colonne B, 2ème place pour C, etc.).
    Cependant, chaque colonne a une formule distincte (=NB.SI($A$1:$A$13;CONCAT(A22;"???")) pour la colonne B, =NB.SI($A$1:$A$13;CONCAT("?";A22;"??")) pour la C, etc.). J'aimerais que le deuxième paramètre de la fonction NB.SI soit identique dans les 4 colonnes: pour la colonne B, prendre le nombre d'occurrences ou le caractère apparaît en 1er, pour la C, en 2ème, etc., avec, pour le “caractère”, celui qui se trouve à la colonne A de la cellule correspondante.

    Compliqué à expliquer, en effet. J'espère que c'est compréhensible.
    Je vous remercie.

    P.S.: votre site fonctionne mal avec le navigateur Safari: il m'est impossible de répondre, quelle que soit l'option choisie (anonyme, compte Google, etc.). Il me faut systématiquement ouvrir Firefox, copier/coller l'adresse URL et copier/coller la question. Ce n'est pas la fin du monde, mais juste que vous soyez au courant.

    RépondreSupprimer
    Réponses
    1. Bonjour, j'ai essayé de vous faire cette solution https://www.cjoint.com/c/JEymJJxO5Zw
      Espérant que c'est ça que vous cherchez.
      Merci pour le problème mentionné c'est très gentil de votre part.

      Supprimer
    2. Bonjour,

      Merci pour votre solution, qui fonctionne, effectivement. Cependant, elle ne répond malheureusement pas à ma question de base, qui perdure.
      Imaginons que nous ayons non pas 4, mais “x” colonnes, avec la même nécessité.
      La formule que je cherche devrait permettre d'avoir, en paramètre, quelque chose qui donne une référence à la cellule en cours de calcul.
      Difficile à expliquer; c'est un concept “de programmation”, je dirais.

      Par exemple, une formule comme celle-ci (fictive): =NB.SI(A1:A7;STXT(CELLULEÉVALUÉE;20;1)=A)
      Cette “CELLULEÉVALUÉE” serait la cellule en cours d'évaluation (entre A1 et A7); 20 serait B20, C20 ou D20 (etc.), suivant la cellule où on est; “A” serait la cellule A21, A22 ou A23, etc.

      Exemple concret: quand Excel calcule la cellule C23 avec la fonction que je cherche, par rapport à A3 (pour la plage A1:A7, au moment où c'est A3 qu'Excel évalue), la formule deviendrait ceci: =NB.SI(A3;STXT(C23;C20;1)=A23).

      Avec cette seule formule, on pourrait avoir un tableau même gigantesque, et on passerait en paramètre les différentes variables de la cellule en cours (sa colonne, sa ligne, son contenu) pour évaluer d'autres cellules liées.

      Je suis conscient que c'est déjà difficile pour moi à expliquer; je suppose qu'Excel manque de “système de variables”, comme il y en a en programmation, mais je n'ai jamais trouvé de réponse à cette question; c'est peut-être juste quelques formules que je ne connais pas…

      À disposition pour plus d'éclaircissements sur ma question, si nécessaire.

      De rien, pour la signalisation.

      Supprimer
    3. ça casse la tête !! avez-vous essayé de vous servir de la fonction cherche qui donne la position d'un caractère dans une cellule? si j'arrive à vous comprendre!!

      Supprimer
    4. Bonjour!

      J'ai donc essayé la fonction “cherche”; merci pour votre suggestion.
      Le problème reste hélas le même: que mettre comme second paramètre?

      J'ai testé pour la cellule B22. Il aurait fallu une formule comme celle-ci:
      =NB.SI($A$1:$A$13;CHERCHE($A22;$A$1:$A$13;B20))
      Mais j'obtiens #EPARS!
      Si je mets une cellule unique (ou un texte spécifique) en 2ème paramètre (au lieu d'une liste de cellules), je ne compare plus toutes les cellules…

      Il me semble bien qu'il manque un concept dans Excel.

      Supprimer
    5. Bonsoir, ce serait mieux de communiquer avec moi en privé. Ecrivez-moi en utilisant le formulaire en haut à droite.

      Supprimer
  17. Bonjour,

    Je cherche à connaître le nombre de mois de juin sur une plage de date.
    Je n'y parviens pas avec la fonction NB.SI.

    Auriez-vous une idée ?

    Merci

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Essayez avec SOMMEPROD :
      =SOMMEPROD((MOIS($A$1:$A$25)=6)*1)
      si vous voulez utiliser NB.SI, vous pouvez créer une nouvelle colonne qui va afficher les mois de vos dates, par exemple dans la cellule B1 tapez =Mois(A1) et vous étirez vers le bas
      puis vous utilisez NB.SI en intégrant la nouvelle colonne comme plage de critère:
      NB.SI(B1:B25;6)

      Supprimer
  18. Bonjour et merci pour toutes ces informations utile. Cependant j'aurai une question.

    J'ai en E47 un nom ( disons Franck ) et en AC3:AC242 une serie de divers noms. ( A noter que quoiqu'il arrive le nom en E47 ( Franck ) sera toujours quelque part en AC3:AC242 mais sa plage variera de temps en temps ).

    La ou ca se complique est que en AC3:AC242 un chiffre sera toujours associé à un nom. Par exemple, Franck est en AC10 et son nombre et en AC9 et ce dernier est 8. Donc je voudrais que en B47 j'obtienne le numéro qui est associé à Franck, donc 8. ( A noter que en AC3:AC242 les nombres associé au noms est toujours une cellule plus haut. Donc ici en dans cette exemple comme Franck est en AC10 son nombre est en AC9, si Marie est en AC45 son nombre sera en AC44 et ainsi de suite pour tous les autres.

    Je sais pas si ce genre de formule existe, j'ai déjà pas mal chercher mais en vain.

    A noter que je suis sous LibreOffice 4.3.4.1

    Cordialement,

    Dimitris

    RépondreSupprimer
    Réponses
    1. Bonsoir,
      Dans B47 tapez la formule suivante =INDEX($AC$3:$AC$242;EQUIV($E$47;$AC$3:$AC$242;0)-1)
      ça fonctionne sous Excel, à tester sur LibreOffice

      Supprimer
    2. Ma formule était bien loin de votre résultat, votre formule fonctionne comme un charme. Merci beaucoup pour votre partage Abdo.

      Cordialement,

      Dimitris

      Supprimer
  19. Bonjour,
    Est il possible d'utiliser la fonction NB.SI, dans le cadre d'une plage séparée (une plage non pas définie comme tel : (A1:G1), mais comme : (A1;D1;F1;G1)) ?

    Cordialement

    RépondreSupprimer
    Réponses
    1. Bonjour,
      déjà répondu à cette question :

      Essayez avec cette formule : =SOMME(NB.SI(INDIRECT({"A1";"D1";"F1";"G1"});critère))

      en général, commencez par taper: =SOMME(NB.SI(INDIRECT(plage1;plage2);critère))
      puis ajoutez les guillemets
      =SOMME(NB.SI(INDIRECT("plage1";"plage2");critère))
      et enfin les accolades
      ensuite validez par Entrée

      Supprimer
  20. Bonjour,
    merci pour vos solutions souvent très savantes et efficaces.
    je souhaite non seulement compter les cellules dont le nombre est > ou < à un critère mais identifier les cellules correspondant à la fonction dans la base de données.

    RépondreSupprimer
  21. Bonjour,
    j'ai une ligne qui a des cellules avec chiffres et de cellules avec lettres. je cherhcer à calculer la somme ou la moyenne de cellule qui ont seulement les chiffres. comment proceder. merci

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Utilisez les deux fonctions SOMME et MOYENNE, elles vont ignorer automatiquement les cellules avec lettres.

      Supprimer
  22. Bonsoir, j'ai deux colonnes A et B, A contient des noms et B des dates allant du 01 au 31 de chaque mois. Cependant un même nom peut apparaître plusieurs fois à une même date, je cherche à compter le nombre de fois qu'un nom apparait sur un mois mais en le comptant une seule fois sur une journée où il peut apparaitre plusieurs fois. Besoin d'aide svp.

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Essayez de concaténer les deux colonnes et d'afficher les données obtenues dans une nouvelle colonne puis utilisez NB.SI et définir comme plage cette colonne et comme critère la cellule contenant le nom et la date concaténés.
      voilà ma réponse si j'ai bien compris votre question !

      Supprimer
  23. Bonjour, merci pour vos solutions. J'aimerai une aide s'il vous plait. Donc j'ai une colonne entière de date avec beaucoup de doublons et j'aimerai crée un formule permettant de connaitre le nombre de doublons de chaque date, sachant que j'ai énormément de date. Pouvez-vous m'aider, merci.

    RépondreSupprimer
    Réponses
    1. Bonsoir,
      Voici une formule à utiliser :
      =SI(NB.SI($A$1:$A$25;A1)>1;"Nombre de doublons "& NB.SI($A$1:$A$25;A1);"")
      tapez la formule dans B1 et copiez-la vers le bas
      Plage des dates A1:A25

      Supprimer
    2. Merci infiniment pour ta réponse ça à très bien fonctionné !

      Je rencontre un autre problème. J’ai un fichier expédition avec les dates d'expéditions (beaucoup de doublons de date) mais une difficulté s'ajoute c'est qu'il y'a une colonne "ok" ( pour ceux qui ont été expédiés ) et "non" (pour ceux qui n'ont pas été expédiés) j'aimerai un peu la même formule que la précédente mais dans deux nouvelles colonnes qui me disent combien ont été expédiés et combien non. S'il vous plait et merci beaucoup pour votre compréhension.

      Supprimer
    3. si dans la colonne "ok" est écrit pour chaque expédition "OK", vous utilisez la fonction NBVAL(colonne "ok") ""colonne "ok" =plage de cellules contenant ok""
      la même chose pour la colonne "non": NBVAL(colonne "non")

      Supprimer
    4. =SI(NB.SI($A$1:$A$2555;A2)>1;" "&NB.SI($A$1:$A$2555;A2);"")=NBVAL(D:D="ok") quand je rentre la formule sur la cellule c'est écrit faux

      Enfaite la ou il y'a ok et non c'est dans la même colonne et moi j'aimerais par exemple avoir sur les 51 demandes du 16/10/2020 savoir combien de ok (peut être 21) et la mettre dans une colonne a part et combien de non (le reste) dans une autre colonne

      Supprimer
    5. Cette formule SI(NB.SI($A$1:$A$23;A1)>1;"D "&NB.SI($A$1:$A$23;A1)&" OK "&NB.SI.ENS($A$1:$A$23;A1;$B$1:$B$23;"ok");"") vous permet d'afficher le nombre de doublons et le nombre de "OK"
      avec colonne A affichant les dates
      et colonne B affichant "ok" ou "non"
      modifiez ok par non pour avoir les résultats des non expédiés

      Supprimer
    6. Tout simplement merci pour ton aide précieuse ! J'apprécie ta générosité et ta compréhension.

      Supprimer
  24. Merci, j'ai trouvé exactement ce que je cherchais

    RépondreSupprimer
  25. bonjour,

    j'aimerais utiliser la fonction NB.SI dès lors où j'ai une date dans la cellule (peu importe la date).

    Quelle est la formule exacte ?

    Merci d'avance

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Si la cellule dont vous parlez contient le critère à utiliser dans NB.SI et que vous voulez qu'Excel teste en premier ce critère s'il est de type date puis d'exécuter la formule NB.SI je vous suggère cette solution :
      SI(ET(ESTNUM(A1);A1>DATE(1900;1;1));"Formule Nb.SI";"Cellule ne contient pas de date")

      Supprimer
  26. Merci pour votre retour.
    Je pensais que ça allait être plus simple que ça.

    Je ne comprends pas pourquoi mettre "Cellule ne contient pas de date" alors qu'au contraire je veux le nombre de cellule ayant une date.

    Que faut-il mettre pour qu'Excel reconnaisse les cellules contenant des dates ?

    RépondreSupprimer
  27. =SI(ET(ESTNUM(I1:I);I1:I>DATE(1900;1;1));NB.SI(I1:I))

    #N/A : Nombre incorrect d'arguments pour la fonction COUNTIF. Celle-ci nécessite 2 arguments, et vous en avez fourni 1.

    ce que cela me dit

    RépondreSupprimer
    Réponses
    1. Utilisez cette formule =NB.SI(A1:A6;">01/01/1900")

      à la place de A1:A6 tapez la référence votre de plage

      Supprimer
  28. Bonjour,
    Merci pour ce tuto très instriuctif.

    J'aurais souhaité rajouter une condition à la formule nb.si.

    J'ai une liste de 200 lignes, à côté de chaque ligne 3 noms de personnes sont associés, et ensuite, j'ai des critères sur une autre colonne, 4 pour être exact.
    J'aimerais connaitre pour chaque personne, le nombre de chaque critères.

    Par exemple, à chaque fois qu'il y a le prénom "Thomas", combien y a t'il de fois dans la colonne à côté "1", "2", "3" et "4".

    Pouvez vous m'indiquer la formule svp ?

    D'avance merci !

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Pouvez-vous m'éclaircir bien votre question?

      Supprimer
  29. Bonjour,

    Tout d'abord je voulais vous dire un grand merci pour votre site, il est vraiment top.
    J'aurais besoin d'aide pour une formule impliquant le NB.SI
    Ma formule fonctionne mais est limité à 64 imbrications et j'aimerais pourvoir en faire bien plus.

    Je m'explique, j'ai un tableau qui récapitule mon relevé de compte dans lequel il y a 2 colonnes (A "Lib" et B "Catégorie"). Je voudrais que la colonne B se remplisse automatiquement en fonction d'une liste qui se trouve sur une autre feuille nommée "List".

    Exemple de la liste:

    Colonne A "Lib": Colonne B "Catégorie":
    ---------------- ------------------
    *LES 5 FERMES* Alimentation
    *CAMAIEU* Habits
    *RATP* Transport

    IMPORTANT: J'ai mis les textes entre astérisques afin qu'il recherche cette chaine de caractère.

    Dans le tableau principale, la colonne Lib ressemble à ça:

    CB LES 5 FERMES 05/01/19
    CB LE VIN GEORG 20/04/19
    CB LEADER EXPRESS 13/04/20

    Par exemple sur la première ligne, il doit identifier "les 5 fermes" puisque cette chaine de caractère se trouve bien dans la liste et doit donc automatiquement compléter la colonne Catégorie avec "Alimentation".

    Voici la formule que j'utilise et que j'écris dans les cellules de la colonne B "Catégorie" du tableau principale :

    # L: La feuille Liste
    # @Lib: La colonne Lib du tableau principale

    =(SI(NB.SI([@Lib];'L'!$A$1);'L'!$B$1;SI(NB.SI([@Lib];'L'!$A$2);'L'!$B$2;SI(NB.SI([@Lib];'L'!$A$3);'L'!$B$3;SI(NB.SI([@Lib];'L'!$A$4);'L'!$B$4;SI(NB.SI([@Lib];'L'!$A$5);'L'!$B$5;SI(NB.SI([@Lib];'L'!$A$6);'L'!$B$6;SI(NB.SI([@Lib];'L'!$A$7);'L'!$B$7;SI(NB.SI([@Lib];'L'!$A$8);'L'!$B$8;SI(NB.SI([@Lib];'L'!$A$9);'L'!$B$9;SI(NB.SI([@Lib];'L'!$A$10);'L'!$B$10;SI(NB.SI([@Lib];'L'!$A$11);'L'!$B$11;SI(NB.SI([@Lib];'L'!$A$12);'L'!$B$12;SI(NB.SI([@Lib];'L'!$A$13);'L'!$B$13;SI(NB.SI([@Lib];'L'!$A$57);'L'!$B$57;SI(NB.SI([@Lib];'L'!#REF!);'L'!#REF!;SI(NB.SI([@Lib];'L'!$A$14);'L'!$B$14;SI(NB.SI([@Lib];'L'!$A$15);'L'!$B$15;SI(NB.SI([@Lib];'L'!$A$16);'L'!$B$16;SI(NB.SI([@Lib];'L'!$A$17);'L'!$B$17;SI(NB.SI([@Lib];'L'!$A$18);'L'!$B$18;SI(NB.SI([@Lib];'L'!$A$19);'L'!$B$19;SI(NB.SI([@Lib];'L'!$A$20);'L'!$B$20;SI(NB.SI([@Lib];'L'!$A$21);'L'!$B$21;SI(NB.SI([@Lib];'L'!$A$22);'L'!$B$22;SI(NB.SI([@Lib];'L'!$A$23);'L'!$B$23;SI(NB.SI([@Lib];'L'!$A$24);'L'!$B$24;SI(NB.SI([@Lib];'L'!$A$25);'L'!$B$25;SI(NB.SI([@Lib];'L'!$A$26);'L'!$B$26;SI(NB.SI([@Lib];'L'!$A$27);'L'!$B$27;SI(NB.SI([@Lib];'L'!$A$28);'L'!$B$28;SI(NB.SI([@Lib];'L'!$A$29);'L'!$B$29;SI(NB.SI([@Lib];'L'!$A$30);'L'!$B$30;SI(NB.SI([@Lib];'L'!$A$31);'L'!$B$31;SI(NB.SI([@Lib];'L'!$A$32);'L'!$B$62;"")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

    Le problème est que je suis limité à 64 imbrications avec la formule SI alors qu'il m'en faudrait 200 au moins.

    Si vous pouvez m'aider, ça serait super sympa. J'ai essayé avec la formule RECHERCHEV, XLOOKUP ou même DECALER mais sans succès.

    Merci à vous.

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Pourriez-vous m'écrire via le petit formulaire de contact se trouvant à votre droite?!

      Supprimer
  30. Merci !
    Connaissez-vous un moyen de compter les cellules supérieures à une cellule donnée dans la même ligne ?
    Par exemple : =NB.SI(B5:B11; ">"&C5:C11) où chaque cellule de B est comparée à celle de la colonne C et comptée si supérieure. Sauf que comme ça, ça ne marche pas…

    RépondreSupprimer
    Réponses
    1. Dans D5 tapez ceci =NB.SI($B$5:B5;">"&C5)
      puis étirez vers le bas jusqu'à D11.

      Supprimer
  31. Bonjour,

    j'ai créé un tableau pour remonter des statistiques journalier et mensuel, j'ai 7 tableau + un tableau qui regroupe les stats des 7 tableaux.
    je voudrais que sur mon tableau global le nombre journalière change automatiquement par rapport à la date du jour. Pourriez-vous m'aider?
    j

    RépondreSupprimer
  32. Bonjour. Bravo pour ce remarquable document.
    Les Q/R apportent des éclairages complémentaires forts utiles... je ne trouve néanmoins pas de réponse à une requête concernant une fourchette de dates:
    Combien de cellules créées en 2019 dans une liste avec des dates dont le format est "01/07/2019"?
    J'envisageais d'utiliser la formule "DATE" plutôt que =NB.SI.ENS(G2:G41;"<01/01/2020";G2:G41;">=1/1/2019"), qui fonctionne mais est peu optimisé.
    Merci.

    RépondreSupprimer
    Réponses
    1. Bonsoir,
      Avez-vous essayé avec cette formule:
      =NB.SI.ENS(G2:G41;"01/07/2019";G2:G41;">01/01/2019";G2:G41;"<1/1/2020") ?!

      Supprimer
  33. Merci pour tes cours cela ma beaucoup aider pour ma formation quand j'étais en télétravail.

    RépondreSupprimer
  34. Bonsoir,
    D'abord merci pour toutes ces informations très utiles.
    Mais là, je n'ai pas trouvé (il faut bien dire que je ne suis pas un pro) : si je reprend votre premier exemple, je souhaiterais connaître le chiffre d'affaires de chaque vendeur. Quelle formule utiliseriez-vous ?
    Merci par avance de votre réponse.
    Bien cordialement,

    RépondreSupprimer
    Réponses
    1. Bonsoir,
      Dans votre cas vous auriez besoin d'une fonction de recherche, reportez-vous à ces cours:
      RECHERCHEV
      ici
      INDEX+EQUIV
      ici
      RECHERCHEX
      ici

      Supprimer
  35. Personnellement, je cherche à compter le nombre de cellules ECRITES EN COULEUR dans un tableau... Je ne trouve rien à ce sujet...

    RépondreSupprimer
    Réponses
    1. Voici un fichier excel avec code vba que vous pouvez télécharger en cliquant sur ce lien Télécharger fichier

      Supprimer
    2. P.S: Vous devez accepter l'exécution des macros !

      Supprimer
  36. Utiliser OU avec NB.SI ne fonctionnera bien, mais voici un exemple qui peut vous aider à combiner la fonction NB.SI avec la fonction OU d'une autre façon: Supposons que vous avez une liste de fruits dans la colonne A, et que vous voulez compter le nombre de cellules qui contiennent soit "pommes" ou "bananes". Voici la formule à utiliser :

    =NB.SI(A:A;"pommes")+NB.SI(A:A;"bananes")

    Cette formule compte le nombre de cellules dans la colonne A qui contiennent "pommes" ou "bananes", en additionnant le nombre de cellules qui répondent à chacun des critères.

    N'oubliez pas que la syntaxe de la formule peut varier en fonction de votre situation, en particulier si vous utilisez des plages de données spécifiques ou des critères de recherche plus complexes.

    RépondreSupprimer

Votre commentaire m'intéresse beaucoup :)