occurence d'une lettre | ||
---|---|---|
Inscription: 26/09/2015
De Caves
Messages:
2
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 26-09-2015 14h46
Bonjour à toutes et à tous. Je suis tout nouveau dans ce forum car je me heurte à un "tout petit" problème. Je dois compter combien de fois une même lettre se trouve dans une chaîne de caractères. j'ai par exemple une case avec cette chaîne : 0-MI-I-EMI-ENI-EMIJ- EM et j'aimerais simplement compter combien il y a de M, de E etc... J'ai un peu fouillé dans les forums, mais je ne suis certainement pas assez patient pour trouver. Merci de me donner un coup de pouce.
plexxar.
Edité par plexxar le 27/09/2015 10:45:58
|
|
|
Re: occurence d'une lettre | ||
---|---|---|
Inscription: 23/05/2008
De La Varenne Saint-Hilaire
Messages:
356
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 26-09-2015 16h12
Bonjour plexxar, et bienvenue parmi nous,
Une approche avec la formule suivante, matricielle à valider par les 3 touches Ctrl Maj Enter, tu verras alors ta formule encadrée par des accolades dans la barre de formule comme ceci après cette validation: {=SOMME(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="M";1))} :
=SOMME(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="M";1)) En décomposant cette formule, ta chaîne de caractère étant en cellule A1:
NBCAR(A1) de renvoie le nombre de caractères contenus dans la cellule A1, soit 23 dans ton exemple (un espace compte pour 1 caractère comme les autres)
LIGNE(INDIRECT("1:"&NBCAR(A1))) va simuler une matrice de 23 éléments comme ceci: {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23} soit autant que de caractères présents dans ta chaîne
La fonction STXT() permet d'extraire une chaine de caractères au sein d'une autre (voir ici) je m'en sert ici pour extraire les caractères 1 à 1, ainsi: STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1) renvoie la matrice suivante: {"0";"-";"M";"I";"-";"I";"-";"E";"M";"I";"-";"E";"N";"I";"-";"E";"M";"I";"J";"-";" ";"E";"M"}
Enfin, si la lettre rencontrée est un M, je compte 1, sinon rien. SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="M";1) renvoie la matrice suivante: {FAUX;FAUX;1;FAUX;FAUX;FAUX;FAUX;FAUX;1;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;1;FAUX;FAUX;FAUX;FAUX;FAUX;1}
Il ne reste qu'à faire la somme de la matrice avec la fonction SOMME(), dans ton exemple nous obtenons 4.
En espérant que cela pourra t'aider,
mth |
|
|
Re: occurence d'une lettre | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 26-09-2015 20h57
Bonsoir plexxar, Mth, le Forum,
Tout d'abord, je suis vraiment content de te croiser à nouveau Mth et à nouveau un grand merci pour tes posts au contenu toujours aussi précieux
Une fois n'est pas coutume, car s'agissant de formule, je me permets une proposition d'une approche un peu différente :
Par exemple, dans une cellule quelconque et pour compter le nombre de "M" dans la cellule A1 : =NBCAR(A1)-NBCAR(SUBSTITUE(A1;"M";""))
Bien cordialement,
Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: occurence d'une lettre : RESOLU | ||
---|---|---|
Inscription: 26/09/2015
De Caves
Messages:
2
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 27-09-2015 10h34
Bonjour mth, Didier et autres lecteurs de ce post et un grand merci pour vos réponses à la fois rapides et cohérentes. J'apprécie votre sérieux et la qualité des explications que vous donnez en même temps que la formule ad-hoc. Enfin un vrai forum d'entraide, bravo.
Bien cordialement, plexxar.
|
|
|