Compter nombre de caractères après un autre caractère dans une cellule
Résolu/Fermé
rorocr
Messages postés
81
Date d'inscription
mardi 8 septembre 2015
Statut
Membre
Dernière intervention
8 juin 2022
-
20 févr. 2019 à 22:13
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 - 21 févr. 2019 à 09:34
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 - 21 févr. 2019 à 09:34
A voir également:
- Compter nombre de caractères après un autre caractère dans une cellule
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Aller à la ligne dans une cellule excel - Guide
- Gmail connexion autre compte - Guide
1 réponse
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié le 20 févr. 2019 à 22:36
Modifié le 20 févr. 2019 à 22:36
Bonjour,
Avec ta chaine en A2, ta lettre1 en B1, ta lettre 2 en C1 :
que tu peux tirer vers le bas.
eric
Avec ta chaine en A2, ta lettre1 en B1, ta lettre 2 en C1 :
=SOMMEPROD((STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)-1));1)=$B$1)*(STXT(A2;LIGNE(INDIRECT("2:"&NBCAR(A2)));1)=$C$1))
que tu peux tirer vers le bas.
eric
20 févr. 2019 à 23:20
Par contre, si tu peux m expliquer son fonctionnement s il te plait car je t’avoue que je suis complètement largué notamment avec les fonctions ligne et indirect.
Et encore merci et bravo !
20 févr. 2019 à 23:59
va te fabriquer une matrice avec les nombre de 1 à (longueur de chaine-1), avant-dernier caractère donc.
INDIRECT("1:"&NBCAR(A2)-1) te fabrique une référence comme si tu sélectionnais les lignes 1:21, Ligne(...) t'extrait les n° des lignes de la référence dans une matrice :
C'est juste un artifice pour générer une suite de nombres.
Passée en 2nd paramètre à STXT ça va te servir à extraire les lettres de 1 à 21 de ta chaine :
qui donne une fois exécuté :
plus qu'à comparer à ta 1 lettre "A" par exemple :
STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)-1));1)=$B$1 pour avoir une matrice de VRAI/FAUX :
2ème partie :
même principe mais pour les caractères de 2 au dernier (décalés d'un cran par rapport à la 1ère donc), égaux à lettre 2. Tu obtiens une 2nde matrice de VRAI/FAUX pour la lettre 2 mais décalée d'un cran :
Plus qu'à multiplier les 2 matrices ensembles, partout où tu auras VRAI*VRAI à la même position dans les matrices (donc lettre 1 ok ET lettre 2 ok) tu obtiens VRAI qui se traduit en 1 :
un sommeprod() sur tout ça et tu obtiens ton nombre de lettres 1 suivie lettres 2.
4 "A" qui suivent un "A"
Voilà, tu peux terminer ton doliprane
eric
Modifié le 21 févr. 2019 à 00:07
Tu peux sélectionner dans la barre de formule une partie et faire F9 pour l'évaluer.
Ca te permet, morceau par morceau, de voir le résultat.
Par exemple sélectionne LIGNE(INDIRECT("1:"&NBCAR(A2)-1)) et fait F9 tu lis :
Puis sélectionne STXT(A2;{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21};1), F9 et tu lis :
{"A";"A";"B";"A";"C";"B";"C";"A";"B";"A";"B";"A";"C";"B";"C";"A";"B";"C";"A";"A";"A"}
Faire Echap pour quitter sinon tu valides tes évaluations à la place des morceaux de la formule.
Tu as aussi 'Formules / Evaluation formule' qui te permet de faire un pas à pas. A chaque clic sur Evaluer il évalue la partie soulignée (qui ne saute pas aux yeux...)
21 févr. 2019 à 09:34
merci beaucoup et bravo à toi!