Fonction NB.SI spécifique

manu -  
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

voilà mon problème :

j'ai une colonne avec une liste de numéros d'appareils commencant par le type d'appareil (4 types) suivi par leur numéro (exemple TR214215 ou TX45664 ou TRE48652 ou TRL45745)
je souhaite compter le nombre d'appareils de type TR uniquement au sein de cette colonne, j'ai donc utilisé la fonction nb si avec "TR*" en critère, mais evidemment, il me compte aussi les TRE et TRL (à cause de l'étoile)...

j'aimerais donc compter uniquement les TR et exclure les TRE et TRL, est ce possible avec la fonction NB.SI ?

merci beaucoup

7 réponses

  1. identifiant-comment Messages postés 351 Statut Membre 54
     
    Peut-être ajouter une colonne cachée qui te renverrait une valeur à 1 avec une formule du genre
    =SI(ET(A1="TR*";A1<>"*E*";A1<>"*L");1;"")
    ?
    0
    1. manu
       
      en fait c'est plus compliqué que ça parce qu'il y a parfois d'autres choses inscrites après la première série de caractère (mot clé, remarque...) donc il peut y avoir des E ou des L là dedans...

      en fait je voudrais accepter les cellules commençant juste par "TR" et refuser toutes les autres...
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,
    petite précision:

    TR456789L est considéré comme valable, c.a.d. une autre lettre nimporte où après les 3 premières ?
    0
  3. manu
     
    oui tout à fait et c'est ça le principal problème

    en fait il faudrait que la fonction prenne en considération uniquement les 3 premiers caractères de la référence... mais comment ?

    merci
    0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    cette formule renvoie 1 si les 2 premièrs caractères sont TR et le 3° un nombre
    =(GAUCHE(A2;2)="TR")*(CODE(STXT(A2;3;1))>47)*(CODE(STXT(A2;3;1))<58)

    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Salut Michel
      pour te rassurer, j'ai aussi vérifié et elle marche effectivement. Bien sur, reste à faire le total de la colonne de résultat.
      Ceci dit, il semble que l'on obtienne le même résultat avec plus simplement:
      =SI(ESTNUM(STXT(A1;3;1)*1);1;0)
      qui détecte si le 3° caractère est un chiffre ou une lettre, ou un blanc
      Reste toujours la colonne à additionner.
      Crdlmnt
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Salut Vaucluse,

        effectivement: jolie formule, bravo.
        ca deviendrait alors
        =(GAUCHE(A1;2)="TR")*(ESTNUM(STXT(A1;3;1)*1))
        0
      2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453 > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Pas tout à fait, non, car dans cette proposition le résultat est tributaire de la valeur du 3° caractère du code!
        A vrai dire, j'avais décidé comme un grand et sans doute à tort que tous les codes commençaient par TR, ce qui permettait d'éliminer la détection des deux caractères de gauche!
        Ce qui fonctionne avec simplement la formule proposée sans ajout

        Bien cordialement

        PS édition d'un message du demandeur:
        en fait je voudrais accepter les cellules commençant juste par "TR" et refuser toutes les autres...
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. manu
     
    merci, mais cette formule ne fonctionne pas dans mon cas (message #valeur)

    mais je vais procéder autrement, je vais compter le nombre total de machines, puis le nombre de tx, tre et trl et soustraire les valeurs pour avoir ce qu'il reste (les tr)...

    par contre maintenant il faut que je fasse le meme tri mais par mois, sachant que le nom du mois est écrit dans la colonne tout à gauche, est ce qu'il est possible de mettre une formule qui choisis elle meme sa plage en fonction du mois ? ou est ce que je dois changer chaque plage manuellement?
    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Curieux... ca marchait chez moi! (en général,je teste avant de répondre)
    0
  8. ppc77 Messages postés 49 Statut Membre 2
     
    bonjour
    si tu ajoutes une colonne avec
    =SI(GAUCHE(A1;2)="TR";SI(STXT(A1;3;1) <"A";"TR";"TRx");"pas tr")
    avec ta liste de code en colonne A
    tu auras en comme résultat
    col A col B
    TR214215 TR
    TR214216 TR
    TR214217 TR
    TR214218 TR
    TR214219 TR
    TRE48652 TRx
    TRE48653 TRx
    TRE48654 TRx
    TRE48655 TRx
    TRL45745 TRx
    TRL45746 TRx
    TRL45747 TRx
    TRL45748 TRx
    TX45664 pas tr
    TX45665 pas tr
    TX45666 pas tr
    TX45667 pas tr
    TX45668 pas tr

    tu n'as plus qu'à faire du nb.si

    chez moi, c'est ok
    bon courage
    0