occurence d'une lettre
#1
Débutant XLPages

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
Hors Ligne
Rapport   Haut 

Re: occurence d'une lettre
#2
Accro XLPages

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

Hors Ligne
Rapport   Haut 

Re: occurence d'une lettre
#3
Webmestre

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 smiley

 

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";""))
  1. On compte le nombre total de caractères de la chaine.
  2. On remplace les "M" par "" (rien) et on compte le nombre de caractères du résultat obtenu.
  3. On fait ensuite la différence entre les 2.

 

Bien cordialement,

 


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: occurence d'une lettre : RESOLU
#4
Débutant XLPages

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. yes

 

Bien cordialement, plexxar.

 

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes