Excel : isoler une suite de caractères au milieu d'autres

Muspellheim56 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
danielc0 Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

J'ai une liste de cellules sous forme de colonne avec tout le texte contenu d'un PDF (doc confidentiel). Extraction faite du PDF par un CtrlA, CtrlC dans le PDF et CtrlV dans le fichier Excel.

Je souhaite extraire de cette liste une donnée qui ne se trouve pas au même endroit dans chaque cellule. Parfois il y a des caractères avant, après et pas le même nombre.

Mais ma donnée à extraire commence toujours par 3 chiffres et une lettre à suivre sans espace.

Je voudrais donc extraire cette donnée avec les critères suivants :

Ignorer les caractères avant mes 3 chiffres, si les 3 chiffres sont immédiatement suivis d'une lettre; et ne garder que les 13 caractères suivant le début de ma donnée à extraire.

Exemple: F 50 854 555ABCD-EF-01 XX ZZ

Je veux extraire 555ABCD-EF-01

Merci d'avance pour vos retours.

Emeline

A voir également:

5 réponses

DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 

Bonjour à tous,

et tout betement

=STXT(A1;CHERCHE("-";A1)-7;13)

Non ?

1
yclik Messages postés 3881 Date d'inscription   Statut Membre Dernière intervention   1 565
 

Bonjour

il faudrait plus d'exemple

et éventuellement un classeur avec des exemples de données

1) Aller dans https://www.cjoint.com/
 2) Cliquer sur [Parcourir] pour selectionner le fichier (15 Mo maxi)
 3) Aller vers le bas pour cliquer sur le bouton bleu [Creer le lien Cjoint]
 4) Au bout de quelques secondes la seconde page s'affiche, avec le lien en gras ; faire un clic-droit dessus et choisir "Copier le lien"
 5) Revenir dans la discussion sur CCM, et dans votre message faire "Coller".

0
brucine Messages postés 21841 Date d'inscription   Statut Membre Dernière intervention   3 469
 

Bonjour,

semble de toute façon relativement facile dans Excel 365, plutôt difficile sinon à ma connaissance où il faut utiliser VBA ou des outils tiers permettant de mettre en place une Regex.

https://support.microsoft.com/fr-fr/office/regextest-fonction-7d38200b-5e5c-4196-b4e6-9bff73afbd31

1
danielc0 Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   231 > brucine Messages postés 21841 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

Insider beta ?

Daniel

0
brucine Messages postés 21841 Date d'inscription   Statut Membre Dernière intervention   3 469 > danielc0 Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

Je ne sais pas, peut être: je ne peux de toute façon pas tester, je n'ai pas 365.

0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 

Bonjour à tous,

=GAUCHE(STXT(A2;CHERCHE(1111;CONCAT(SI(STXT(A2;LIGNE(1:20);1)>" ";1;0)));50);CHERCHE(" ";STXT(A2;CHERCHE(1111;CONCAT(SI(STXT(A2;LIGNE(1:20);1)>" ";1;0)));50))-1)

mais sur un seul exemple pas dit que ce soit suffisant...
eric

PS : augmenter le 20 de 1:20 si le début peut être plus loin


0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 

Bonjour

A l'aide de la fonction personnalisée suivante :

https://www.cjoint.com/c/NFgmaScPJnQ

Cdlmnt

Via


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
danielc0 Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   231
 

Bonjour à tous,

En complément de la réponse de DjiDji59430, si la longueur de la chaîne à extraire est variable :

Avec Excel 365 :

=INDEX(FRACTIONNER.TEXTE(A1;" ");4)

Toutes versions :

=INDEX(FILTRE.XML("<M><R>"&SUBSTITUE(A1;" ";"</R><R>")&"</R></M>";"//R");4)

Daniel

0