Extraire une chaine dans un texte avec excel 2003

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

siocnarf

XLDnaute Occasionnel
Bonjour,

J'ai un classeur avec beaucoup de cellule contenant du texte.

Pour toutes les lignes contenant "Data Source=", je souhaiterais extraire tout ce qui est de "=" jusqu'à ";"

Ainsi dans ma cellule, j'obtiendrais 12345.abc ou peut importe ce qu'elle contient.

Data Source=12345.abc;



Merci,
 
Re : Extraire une chaine dans un texte avec excel 2003

Bonjour,

C'est effectivement un bon début.
Je me suis repenché sur la problématique.
DataSource: PR23.PES --> Fin de ligne
ou
Data Source=PR23.PES;

Comment traité ces 2 paramètres. Je crois qu'il faut réellement rechercher Data Source et DataSource.




Merci,
 
Dernière édition:
Re : Extraire une chaine dans un texte avec excel 2003

Re,

Et si tu t'expliquais clairement en mettant en pièce jointe quelques exemples reprenant tous les cas de figure à traiter ainsi que les résultats à obtenir, ne crois-tu pas qu'on perdrait un peu moins de temps ?
 
Re : Extraire une chaine dans un texte avec excel 2003

Bonjour,

Désolé!

*****************************************
Il y a un problème et je ne réussis pas à ajouter une pièce jointe. Je crois que le problème est avec le réseau ici 🙁

Cellule A1: ConnectionString: Data Source=PR23.PES;User ID=st1p001; Min Pool Size=0; Incr Pool Size=5; Decr Pool Size=2; Connection Timeout=15; Max Pool Size=101;

Cellule A2:
3) Exception Information

Exception Type: Oracle.DataAccess.Client.OracleException

Errors: Oracle.DataAccess.Client.OracleErrorCollection

DataSource: PR23.PES

Message: ORA-02049: temporisation : la transaction distribuée attend un verrou


********************************************
Dans les 2 cas, je devrais obtenir PR23.PES. J'aimais mieux l'ancienne interface pour les pièces jointes du moins.


Merci,
 
Re : Extraire une chaine dans un texte avec excel 2003

Bonjour,

Je vous ai donné les informations en A1 et en A2. Il n'y a qu'à faire un copier/coller et à partir de là vous auriez les chaines de bases. En B1 et en B2, le résultat devrait être PR23.PES mais il faut noter que "DataSource: " s'écrit également "Data Source=" et que dans une situation

Merci,
 
Re : Extraire une chaine dans un texte avec excel 2003

Re,

Avant je ne comprenais pas beaucoup, maintenant plus rien du tout !

J'ai collé la formule proposée sous le message #2 en B1 et elle renvoie PR23.PES, cela semble correct.
Dans cette formule le = peut être remplacé par Data Source, en ajustant le nombre de caractères.

En B2 comment veux-tu que cette formule renvoie aussi PR23.PES, puisque cette chaine n'est pas suivie d'un ; ?
 
Re : Extraire une chaine dans un texte avec excel 2003

Bonjour,

Tu as très bien compris mon dilemne. En B2, la ligne se termine par un retour de chariot.
Dans l'un des cas, il s'agit d'un = et dans l'autre un :
Comment dans les 2 scénarios, je peux obtenir le résultat PR23.PES?

Merci,
 
Re : Extraire une chaine dans un texte avec excel 2003

Bonjour,
Un essai avec cette formule :

=STXT(A1;(SI(ESTERREUR(TROUVE("DataSource:";A1;1))=VRAI;TROUVE("Data Source=";A1;1);TROUVE("DataSource:";A1;1))+12);(SI(ESTERREUR(TROUVE(";";A1;SI(ESTERREUR(TROUVE("DataSource:";A1;1))=VRAI;TROUVE("Data Source=";A1;1);TROUVE("DataSource:";A1;1))))=VRAI;TROUVE(CAR(10);A1;SI(ESTERREUR(TROUVE("DataSource:";A1;1))=VRAI;TROUVE("Data Source=";A1;1);TROUVE("DataSource:";A1;1)));TROUVE(";";A1;SI(ESTERREUR(TROUVE("DataSource:";A1;1))=VRAI;TROUVE("Data Source=";A1;1);TROUVE("DataSource:";A1;1))))-(SI(ESTERREUR(TROUVE("DataSource:";A1;1))=VRAI;TROUVE("Data Source=";A1;1);TROUVE("DataSource:";A1;1))+12)))
 
Re : Extraire une chaine dans un texte avec excel 2003

Re,

Deux lignes d'exemples ne me semblent pas suffisantes pour pouvoir en déduire les contraintes à respecter.

Pour le début de l'extraction on ne peut se baser sur Data Source, valable pour A1, mais pas pour A2 puisque là il y a DataSource (sans espace).
On pourrait donc se baser sur Source, à condition d'être sur que ce mot n'est pas employé seul dans la même ligne.
Mais ce n'est pas tout, en A1 il n'y a pas d'espace entre le = et la suite (PR ...), en A2 il y en a un entre le : et la suite (PR ...)
Pas simple à solutionner, mais supposons qu'on puisse le faire avec un SUPPRESPACE().

Pour définir la fin de la chaine à extraire il faudrait se baser sur le premier ; ou retour de chariot (qui vaut CAR(10)) qui suit le mot Source.
C'est faisable par la fonction MIN, mais pas simple car il faut préalablement tester les deux recherches pour s'assurer qu'elles ne renvoient pas de message d'erreur si les caractères cherchés ne sont pas présents dans la chaine de caractères.

Il faudrait donc, pour tester plus ou moins valablement une formule, une vingtaine de lignes représentatives de tous les cas de figure, mais sans avoir la certitude qu'elle sera valable sur une plus grande plage.
 
Re : Extraire une chaine dans un texte avec excel 2003

Re,
Compte tenu que je pense que ma formule est très largement incomprehensible, je joint un fichier avec la formule decortiquée en plusieurs colonnes et la formule unique le tout dans la piece jointe. Mais comme le dit si bien hoerwind (que je salue), ça implique qu'il n'y ai que 2 cas de figures. Et là c'est pas encore gagné !
 

Pièces jointes

Dernière édition:
Re : Extraire une chaine dans un texte avec excel 2003

Bonjour,

J'ai trouvé une solution qui me semble correcte avec la formule suivante:

=SI(ESTERREUR(STXT(O241;CHERCHE("Data Source";O241)+NBCAR("DataSource")+1;8));SI(ESTERREUR(STXT(O241;CHERCHE("DataSource";O241)+NBCAR("DataSource")+2;8));"";STXT(O241;CHERCHE("DataSource";O241)+NBCAR("DataSource")+2;8));SI(ESTERREUR(STXT(O241;CHERCHE("Data Source";O241)+NBCAR("Data Source")+1;8));"";STXT(O241;CHERCHE("Data Source";O241)+NBCAR("Data Source")+1;8)))


Merci,
 
Re : Extraire une chaine dans un texte avec excel 2003

Re,

Ta formule fonctionne, mais aux conditions suivantes :
- le texte à extraire suit toujours ou bien "Source: " ou bien "Source="
- le texte à extraire a toujours une longueur de huit caractères.
Ces deux contraintes ne pouvaient être déduites de l'exemple de deux lignes que tu as fourni.

Si tel est la cas, la formule suivante fonctionne aussi, mais a l'avantage d'être bien plus courte :
Code:
=SI(ESTERREUR(CHERCHE("Source=";O241));STXT(O241;CHERCHE("Source:";O241)+8;8);STXT(O241;CHERCHE("=";O241)+1;8))

Teste et dis-nous.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour