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

Muspellheim56 Messages postés 2 Statut Membre -  
danielc0 Messages postés 2198 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

5 réponses

  1. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
     

    Bonjour à tous,

    et tout betement

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

    Non ?

    1
  2. yclik Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   1 611
     

    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
    1. brucine Messages postés 24999 Date d'inscription   Statut Membre Dernière intervention   4 180
       

      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
      1. danielc0 Messages postés 2198 Date d'inscription   Statut Membre Dernière intervention   286 > brucine Messages postés 24999 Date d'inscription   Statut Membre Dernière intervention  
         

        Bonjour,

        Insider beta ?

        Daniel

        0
      2. brucine Messages postés 24999 Date d'inscription   Statut Membre Dernière intervention   4 180 > danielc0 Messages postés 2198 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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     

    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. danielc0 Messages postés 2198 Date d'inscription   Statut Membre Dernière intervention   286
     

    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