Bonjour,
Si l'information recherchée est toujours placée entre deux tiret, alors la formule suivante peut fonctionner :
- Code: Tout sélectionner
=STXT(A1;CHERCHE("-";A1;1)+1;CHERCHE("-";A1;CHERCHE("-";A1;1)+1)-(CHERCHE("-";A1;1)+1))
Quelques explications :La fonction cherche permet de retrouver la position d'un caractère dans une chaine. On va donc chercher le premier tiret dans la cellule A1.
CHERCHE("-";A1;1)
la formule retourne 21
Le premier caractère à extraire est donc en 22
CHERCHE("-";A1;1)+1Maintenant, nous allons chercher le deuxième tiret. Nous allons réutiliser la fonction cherche, mais en démarrant la recherche après le premier tiret.
Nous savons que ce caractère (le 22) est accessible avec la formule vu précédemment :
CHERCHE("-";A1;1)+1On imbrique les deux fonctions cherche :
CHERCHE("-";A1;
CHERCHE("-";A1;1)+1)
La formule retourne 30
Maintenant, comptons le nombre de caractères à extraire : Nous allons soustraire les deux nombres trouvés précédemment :
CHERCHE("-";A1;CHERCHE("-";A1;1)+1) - CHERCHE("-";A1;1)+1La réponse est 8
Nous avons donc tous les éléments pour effectuer une extraction avec la fonction STXT, à savoir : le numéro de départ et le nombre de caractères à extraire.
Ce qui donne :
=STXT(A1;
CHERCHE("-";A1;1)+1;
CHERCHE("-";A1;CHERCHE("-";A1;1)+1)-(CHERCHE("-";A1;1)+1))
ce qui correspond à =STXT(A1;22;8)
La formule a l'air complexe au premier abord, mais il suffit de la décomposer comme nous l'avons fait ci-dessus.
Pour obtenir des informations sur ces fonctions :
Les fonctions textes : STXTLes fonctions textes : CHERCHE@+