IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

extraire 2 caractères d'une chaine


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut extraire 2 caractères d'une chaine
    Bonjour à tous, je cherche le moyen à l'aide de fonctions excel (je ne pense pas qu'il soi nécessaire de le faire en VBA) d'obtenir le résultat suivant :

    dans un fichier utilisateurs où j'ai le nom et le prénom, je souhaiterais créer une troisième colone qui me donnerait initiale du pnom.nom (jusque là enfantin), seulement lorsque je rencontre un prénom composé (ex : jean-michel DUPONT), je voudrais avoir le modèle suivant jm.dupont.

    je dois donc rechercher dans ma chaîne si j'ai le caractère "-" et le cas échéant extraire le premier caractère situé après le "-"... je pense que celà doit être faisable mais je ne sais pas comment...

    pouvez-vous m'aider SVP ?

    Zyco

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour zyco,

    Une solution éventuelle en supposant que les prénoms composés sont toujours séparés par un "-" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERREUR(CHERCHE("-";A1));GAUCHE(A1;1)&"."&STXT(A1;CHERCHE(" ";A1)+1;50);GAUCHE(A1;1)&STXT(A1;CHERCHE("-";A1)+1;1)&"."&STXT(A1;CHERCHE(" ";A1)+1;50))
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    je suppose qu'il y a plus simple, mais ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SI(ESTERREUR(CHERCHE("-";A1;1));STXT(A1;1;1)&"."&STXT(A1;1+CHERCHE(" ";A1;1);NBCAR(A1)-CHERCHE(" ";A1;1));STXT(A1;1;1)&STXT(A1;1+CHERCHE("-";A1;1);1)&"."&STXT(A1;1+CHERCHE(" ";A1;1);NBCAR(A1)-CHERCHE(" ";A1;1)))

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Merci à tous pour vos réponses, je vais tenter tout de suite

    Zyco

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    le raisonnement semble correct mais dans mon cas il y a peut être plus simple (je m'explique...)

    j'ai le prénom en A1 et le nom en A2 dans ma cellule A3 j'ai mis la formule suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(B3;1)&"."&SUBSTITUE(C3;" ";"")
    qui de donne le résutat style j.dupont qu'il s'agisse de Jean ou Jean-Michel

    je vais donc tenter d'utiliser votre méthode pour l'appliquer à la première partie de ma formule

    à suivre

    Zyco

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Super ça marche, ma formule finale est la suivante

    =MINUSCULE(SI(ESTERREUR(CHERCHE("-";B2;1));STXT(B2;1;1);STXT(B2;1;1)&STXT(B2;1+CHERCHE("-";B2;1);1))&"."&SUBSTITUE(C2;" ";""))

    dans une tableau sous la forme suivante

    login | Prenom | Nom

    ça donne

    jm.dupont | Jean-Michel | DUPONT

    pile-poil ce que je voulais !!!

    Encore merci à tous

    ZYCO

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    évidemment, nos formules semblent plus compliquées parce que j'aurais comme l'impression qu'on a tous compris que l'on faisait l'extraction a partir d'une seule cellule. comme quoi, faut bien lire l'énoncé, en relisant , on voit bien que c'était écris
    Citation Envoyé par zygomatix
    je souhaiterais créer une troisième colone

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire les caractères d'une chaine sans séparateur
    Par AJ_ing dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 13/06/2012, 11h19
  2. [WD14] Extraire les caractères d'une chaine
    Par fhmayn dans le forum WinDev
    Réponses: 7
    Dernier message: 30/10/2009, 09h12
  3. Extraire des caractères d'une chaine
    Par fabpeden dans le forum C
    Réponses: 5
    Dernier message: 07/05/2007, 10h09
  4. Comment extraire des caractères d'une chaine ?
    Par Powa87 dans le forum Langage
    Réponses: 16
    Dernier message: 01/01/2005, 19h00
  5. Réponses: 9
    Dernier message: 17/01/2003, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo