Extraire une chaîne de caractère

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. Contributeur
    Bonjour,

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

    eric
    1
    1. Salut eric !

      Merci pour ta réponse, c'est en effet plus sympa comme formule haha
      0
    2. Contributeur Ambassadeur
      pas mieux ainsi?
      =STXT(A2;CHERCHE(" ";A2)+1;CHERCHE("/";A2)-CHERCHE(" ";A2)-1)
      0
    3. Contributeur
      Bonjour yg_be,

      comme il recherchait "ss ", à-priori "%mass " est constant.
      eric
      0
    4. Oui %mass est constant :-)
      0
    5. Bonjour et merci eric d'avoir repris cette formule barbarique que j'ai pu faire :)
      0
  2. 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. 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. 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. C'est en effet un peu barbare mais c'est déjà plus clair haha

      Merci encore !
      0