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
A voir également:

7 réponses

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
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 450
 
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > 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
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 450 > 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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Curieux... ca marchait chez moi! (en général,je teste avant de répondre)
0
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