extraction partie d'une chaine de caractères

  • Initiateur de la discussion barbara
  • Date de début
B

barbara

Guest
Bonjour le forum,

Je voudrais extraire d'une chaine de longeur variable les caractères situés après le dernier slash
le pb étant qu'il peut y avoir plusieurs slash dans la chaine
Type : lundi/mardi/marcredi/jeudi
Je voudrais récupérer le dernier terme, le jeudi
Comme la longueur est variable, je ne vois pas
comment utiliser la fonction right et comme il y a plusieurs slash, comment utiliser la fonction mid


merci à tous
 

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour Barbara, Hervé, Pascal76,

bon les VBtiste sont les plus rapides mais comme dirait Hervé il n'y a pas de raison :) :) ;)alors, une approche par formule (fonctionne avec les jours de la semaine car on peut a peut prés définir le nombre de caracteres)

=REMPLACER('/';1;TROUVE('/';B13;NBCAR(B13)-10);DROITE(B13;NBCAR(B13)-TROUVE('/';B13;NBCAR(B13)-10)))

Bonne jounée

Jocelyn
 

Ti_

Nous a quitté
Repose en paix
salut

pour poursuivre dans la foulée, une autre solution sous forme de formule matricielle :

=STXT(A1;MAX((LIGNE(DECALER($A$1;0;0;NBCAR(A1))))*(STXT(A1;(LIGNE(DECALER($A$1;0;0;NBCAR(A1))));1)='/'))+1;NBCAR(A1))

Message édité par: Ti_, à: 10/04/2006 11:01
 
B

barbara

Guest
Bonjour à tous les quatre,

et un grand merci pour toutes vos solutions
et pour toutes ces fonctions que je ne connaissais pas ou peu

Je vais pouvoir décortiquer tout cela

encore merci

barbara
 

Jocelyn

XLDnaute Barbatruc
re,
Bonjour Ti_,

Merci Ti_ ta formule est bien meilleur que la mienne allé hop dans une petite case de ce qui me sert de cerveau.

Jocelyn

edit je viens de la tester elle ouvre des horizons en remplacant max par grand.valeur, génial.

Message édité par: Jocelyn, à: 10/04/2006 11:19
 

Monique

Nous a quitté
Repose en paix
Bonjour,

à essayer :
=STXT(A1;EQUIV(0;(ESTNUM(TROUVE('/';A1;LIGNE(INDIRECT('1:'&NBCAR(A1)))))*1);0);1024)

Si tu n'as que des jours de semaine : 8 à la place de 1024
=STXT(A1;EQUIV(0;(ESTNUM(TROUVE('/';A1;LIGNE(INDIRECT('1:'&NBCAR(A1)))))*1);0);8)

Formule matricielle, à valider par ctrl, maj et entrée
 

Nioubie

XLDnaute Nouveau
Re : Re:extraction partie d'une chaine de caractères

à essayer :
=STXT(A1;EQUIV(0;(ESTNUM(TROUVE('/';A1;LIGNE(INDIRECT('1:'&NBCAR(A1)))))*1);0);1024)

Si tu n'as que des jours de semaine : 8 à la place de 1024
=STXT(A1;EQUIV(0;(ESTNUM(TROUVE('/';A1;LIGNE(INDIRECT('1:'&NBCAR(A1)))))*1);0);8)

Formule matricielle, à valider par ctrl, maj et entrée[/QUOTE]

******************************************
Bonjour Monique :)

Cette formule m'interesserait, mais je n'arrive pas à la faire fonctionner,
j'obtiens une erreur.
J'ai tenté de remplacer les ' par des " mais cela ne résoud pas l'affaire.
Ci-joint le fichier,

Merci d'avance si vous pouviez résoudre l'enigme.
 

Tibo

XLDnaute Barbatruc
Re : extraction partie d'une chaine de caractères

Bonjour Nioubie,

Dans la formule de Monique, il faut effectivement remplacer les ' (apostrophes) par des " (guillemets)

Ensuite, il s'agit d'une formule matricielle, ce qui signifie qu'elle doit être validée par la combinaison de touches CTRL + MAJ + ENTREE

Sinon, une solution avec une formule classique :

Code:
=STXT(A1;TROUVE("µ";SUBSTITUE(A1;"/";"µ";NBCAR(A1)-NBCAR(
SUBSTITUE(A1;"/";""))))+1;8)

Le principe : détecter l'emplacement du dernier caractère / et extraire la partie de la chaine située après ce dernier caractère

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 893
Membres
103 982
dernier inscrit
krakencolas