Extraire une chaîne de caractère

Jrmy -  
diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !

Je souhaiterais extraire une chaine de caractère qui se situe au milieu d'une autre chaine de caractère.

Je mets un exemple ce sera plus simple : le texte complet est %mass 7778-50-9/231-906-6/, et moi je voudrais seulement garder 7778-50-9. Pour cela j'ai utilisé la formule =STXT(D10;CHERCHE("ss ";D10)+3;9), qui fonctionne mais seulement le numéro a extraire ne comporte pas tout le temps 9 caractères ... En revanche il est bien toujours positionné après l'enchainement "ss " et avant "/".

Auriez vous une idée pour résoudre ce problème ?

Merci d'avance pour votre aide et bonne journée !

Jérémy

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    un peu moins barbare ;-) En complétant ta formule :
    =STXT(A2;CHERCHE(" ";A2)+1;CHERCHE("/";A2)-7)

    eric
    1
    1. Jrmy
       
      Salut eric !

      Merci pour ta réponse, c'est en effet plus sympa comme formule haha
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      pas mieux ainsi?
      =STXT(A2;CHERCHE(" ";A2)+1;CHERCHE("/";A2)-CHERCHE(" ";A2)-1)
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour yg_be,

      comme il recherchait "ss ", à-priori "%mass " est constant.
      eric
      0
    4. jrmy
       
      Oui %mass est constant :-)
      0
    5. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
       
      Bonjour et merci eric d'avoir repris cette formule barbarique que j'ai pu faire :)
      0
  2. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
     
    Bonjour,

    J'ai une formule pour vous elle est un peu barbare mais a le mérite de fonctionner:
    =DROITE(GAUCHE(A2;CHERCHE("/";A2)-1);NBCAR(GAUCHE(A2;CHERCHE("/";A2)-1))-CHERCHE(" ";GAUCHE(A2;CHERCHE("/";A2)-1)))


    Il faut juste remplacer A2 par la case en question. Attention, vos case doivent contenir un espace avant la série de chiffre que vous voulez ( ça a l'air d'être dans vos prérequis avec le "mass ")
    0
    1. Jrmy
       
      Merci Diablo !

      Ca marche nickel :-)
      Est ce que vous auriez une petite explication pour les différents termes ? Juste histoire que je sache ce que j'utilise

      Encore merci !
      0
    2. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
       
      Pour faire simple:
      -Droite(texte,[nb_car]) permet de prendre les "nb_car" de la chaîne texte.
      -Gauche... Bon c'est pareil mais a gauche.
      -nbCar permet de compter le nombre de caractère d'une chaîne.
      - et cherche renvoi la position du caractère cherché.

      Donc, On prend la droite ( "DROITE(" ), du texte renvoyé par gauche("GAUCHE(") , qui prend les caractères à gauche de "/"( "CHERCHE("/";A2)-1)" ). et on prend le nombre de caractère ( "NBCAR(" )du texte renvoyé par gauche ( "GAUCHE(A2;CHERCHE("/";A2)-1))" ( -1 car on retire le "/" du calcul ) , auxquel on retire le nombre de caractère avant votre série de chiffre ( "CHERCHE(" ";GAUCHE(A2;CHERCHE("/";A2)-1))" )

      Alors oui c'est très barbare et mon explication est peut-être pas ... Très explicite, mais je vois pas comment vous l'expliquez mieux. C'est une combinaison de recherche de caractère, et de nombre de caractères :)
      0
    3. Jrmy
       
      C'est en effet un peu barbare mais c'est déjà plus clair haha

      Merci encore !
      0