Extraction de chaine

Résolu
nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   -  
nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais a partir d'une cellule contenant une adresse complète,extraire la partie entre les chiifres.
exemple: Mr Dupont 42 rue de la fosse 75620 paris

Résultat : rue de la fosse.

Merçi d'avance

4 réponses

  1. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
     
    désolé ,mais en fait c'est une formule que j'aurais aimé avoir.
    toutes mes excuses.
    merci
    0
  2. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonsoir,

    je n'ai pas cherché à faire simple mais voici une formule matricielle qui fonctionne sur l'exemple fourni :
    SUPPRESPACE(STXT(A1;MIN(SI((ESTNUM(--STXT($A$1;LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1)))*(NON(ESTNUM(--STXT($A$1;1+LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A$1)-1))+1;9^9));MAX(SI((ESTNUM(--STXT($A$1;LIGNE(INDIRECT("2:"&NBCAR($A$1)));1)))*(NON(ESTNUM(--STXT($A$1;LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A$1)-1))+1;0))-MIN(SI((ESTNUM(--STXT($A$1;LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1)))*(NON(ESTNUM(--STXT($A$1;1+LIGNE(INDIRECT("1:"&NBCAR($A$1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A$1)-1))+1;9^9))))
    A1 contient l'adresse.
    La formule est à valider par CTRL+MAJ+ENTER.

    cdlt
    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      Salut JvDo

      Là tu as fait fort!

      Maintenant si le demandeur préfère une (bonne) formule à une macro .....

      Bonne soirée et bon week end

      Cordialement
      0
    2. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
       
      Salut,

      mais je pense que nihcoc regrettera ta macro s'il a quelques milliers de lignes à traiter !!

      cdlt
      0
  3. nihcoc
     
    Merçi a tous ,mais j'utilise une vieille version d'excel et je ne peux pas dépasser 255 caractères.
    si vous aviez une formule plus simple je suis preneur.
    merçi
    0
    1. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
       
      Bien sûr, il y a plus simple :
      =SUPPRESPACE(STXT($A$1;REGEX.TROUVE($A$1;"\d\D";1)+1;REGEX.TROUVE($A$1;"\D\d";-1)-REGEX.TROUVE($A$1;"\d\D";1)))

      Seulement, pour l'utiliser, il faut installer la macro complémentaire Morefunc de Laurent Longre.
      Je te laisse la trouver sur le web.

      cdlt
      0
    2. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Bonjour j'ai essayé d'instaler "Morefun,mais il refuse de s'instaler avec excel 95.
      merci quand même pour tout.
      0
    3. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
       
      curieux, Morefunc est compatible avec 95.

      sinon, une solution toute simple est de décomposer la formule indigeste en 3 morceaux:
      en B1 :
      =MIN(SI((ESTNUM(--STXT($A1;LIGNE(INDIRECT("1:"&NBCAR($A1)-1));1)))*(NON(ESTNUM(--STXT($A1;1+LIGNE(INDIRECT("1:"&NBCAR($A1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A1)-1))+1;9^9))

      en C1 :
      =MAX(SI((ESTNUM(--STXT($A1;LIGNE(INDIRECT("2:"&NBCAR($A1)));1)))*(NON(ESTNUM(--STXT($A1;LIGNE(INDIRECT("1:"&NBCAR($A1)-1));1))));LIGNE(INDIRECT("1:"&NBCAR($A1)-1))+1;0))

      et en D1 :
      =SUPPRESPACE(STXT($A1;$B1;$C1-$B1)

      cdlt
      0
    4. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Merci a toi JvDo ,ça marche très bien,c'est super
      Tchao
      0