Extraire la fin d'une chaine de caractère

Résolu
mr.denver Messages postés 33 Statut Membre -  
PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   -
je cherche à extraire d'une cellule la chaine de caractères qui précède le dernier tiret de de toute la chaine de caractère, et pouvoir répéter cette fonction sur plusieurs cellules dont la chaine de caractère n'est pas toujours de même longueur.

ex:extraire seulement "T1TRANSFO" de la chaine : "PMFR-MTA-C-5758-ELEHT-T1TRANSFO"

PMFR-MTA-C-5758-ELEHT-T1TRANSFO
PMFR-MTA-C-5758-FROID-CLIM
PMFR-MTA-C-5758-INCEN-DETINC
PMFR-MTA-C-5758-INCEN-POSTSPK
PMFR-MTA-C-5758-INCEN-STOCKSPK
PMFR-MTA-C-5758-INGAZ-DETGAZ
PMFR-MTA-C-5758-LEVAG-MONTECG
PMFR-MTA-C-5758-PORBA-PORTRAPID

je vous remercie par avance

7 réponses

  1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Le texte est en A5

    Il faut toujours 5 tirets voici une formule

    =DROITE($A5;NBCAR($A5)-TROUVE("-";$A5;(TROUVE("-";$A5;TROUVE("-";$A5;(TROUVE("-";$A5;(TROUVE("-";$A5;1)+1))+1))+1)+1)))
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    Comme tu as toujours 5 tirets et le 5ème toujours en même position :
    =STXT(A2;CHERCHE("-";A2;21)+1;50)

    eric

    En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche.(devise Shadok)
    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
    0
  3. mr.denver Messages postés 33 Statut Membre
     
    merci bcp pour les réponces rapide ça marche tres bien, entre temps moi aussi j'ai trouvé une solution:

    =DROITE(A390;NBCAR(A390)-TROUVE("-";A390)-17)

    mais au faite j'ai oublier de mentionner que parfois j'ai des chaine qui ne comporte pas 5 tiret et la par contre je ne voudrais rien extraire, en gros je voudrais extraire que les caractaitre qui précède le 5ème tiret sinon une cellule vide...une difficulté de plus

    ex:
    PMFR-MTA-B-LC27-PALET-RBT07
    PMFR-MTA-C
    PMFR-MTA-C-0147
    PMFR-MTA-C-0147-EAUCH
    PMFR-MTA-C-0147-EAUCH-SSTATION
    PMFR-MTA-C-0147-ECLAI
    PMFR-MTA-C-0147-ECLAI-BAES

    je vous remerci par avance
    0
  4. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    La formule est un peu longue mais elle fonctionne sans imposer une position à 21 ou un -17 ou autre caractère
    S'il n'y a pas cinq tirets rien n'est affiché

    =SI(ESTERREUR(DROITE($A6;NBCAR($A6)-TROUVE("-";$A6;(TROUVE("-";$A6;TROUVE("-";$A6;(TROUVE("-";$A6;(TROUVE("-";$A6;1)+1))+1))+1)+1))));"";DROITE($A6;NBCAR($A6)-TROUVE("-";$A6;(TROUVE("-";$A6;TROUVE("-";$A6;(TROUVE("-";$A6;(TROUVE("-";$A6;1)+1))+1))+1)+1))))
    0
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Avec la proposition de teste pour les 5 tirets d'Eriiic cela donne

      =SI(NBCAR(A5)-NBCAR(SUBSTITUE(A5;"-";""))=5;DROITE($A5;NBCAR($A5)-CHERCHE("-";$A5;(CHERCHE("-";$A5;CHERCHE("-";$A5;(CHERCHE("-";$A5;(CHERCHE("-";$A5;1)+1))+1))+1))+1));"")
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      A quoi ça sert de proposer plus long que la dernière proposition ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Re,

    en plus court :
    =SI(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"-";""))=5;STXT(A2;CHERCHE("-";A2;21)+1;50);"")

    eric
    0
  7. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir
    ou alors:
    =STXT(A1;TROUVE("/";SUBSTITUE(A1;"-";"/";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"-";""))))+1;25)
    qui fonctionne quelque soit le nombre de tirets
    crdlmnt
    0
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Voila à vous deux Eriiic et Vaucluse
      Vous m'avez permis d'apprendre comment simplifier ma formule
      Je préfère celle de Vaucluse qui impose juste un mot de 25 caractères maximum en extraction
      Alors que celle d'Eriiic impose un tiret après le 21 caractère
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Alors que celle d'Eriiic impose un tiret après le 21 caractère
      Pas compris là...
      Ca retourne ce que tu as demandé :
      j'ai des chaine qui ne comporte pas 5 tiret et la par contre je ne voudrais rien extraire

      eric
      0
    3. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Bonjour Eriiic

      Je me suis mal exprimé, dans votre formule vous chercher le tiret à partir du 21 caractères et pour moi cela impose que toutes les chaînes analysées comportant 5 tirets soient composées d'un minimum de 21 caractères. Je préfère une formule sans contrainte. C'est uniquement pour mon information.

      Merci Eriiic et Vaucluse pour vos réponses
      0
  8. mr.denver Messages postés 33 Statut Membre
     
    je vous remercie Vaucluse, eriiic, PHILOU10120 ça marche tres bien!!
    0