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

SAS Base Discussion :

Inverser l'ordre du Nom Prénom


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2018
    Messages : 14
    Points : 19
    Points
    19
    Par défaut Inverser l'ordre du Nom Prénom
    Bonjour,

    Sauriez vous comment inverser l'ordre du Nom Prénom en programmation SAS?

    Ex :

    GERARD TANGUY => TANGUY GERARD

    Merci pour votre aide !

    Cordialement,

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Inverser l'ordre du Nom Prénom
    Bonjour,

    NB : Votre problème nécessite que les prénoms et les noms composés soient enregistrés comme tel, ce que vous pouvez vérifier en comptant le nombre de mots.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data test;
      input prenom_nom $20.;
      cards;
    JEAN-MICHEL TANGUY
    JEAN MICHEL TANGUY
    ;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data test;
      set test;
      countw=countw(prenom_nom, " ");
      if countw=2 then do;
        prenom=scan(prenom_nom, 1, " ");
        nom=scan(prenom_nom, 2, " ");
        nom_prenom=catx(" ", nom, prenom);
      end;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         prenom_nom        countw      prenom        nom          nom_prenom
     JEAN-MICHEL TANGUY       2      JEAN-MICHEL    TANGUY    TANGUY JEAN-MICHEL
     JEAN MICHEL TANGUY       3
    Cordialement,

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Une deuxième solution envisageable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data nom_prenom ;
    input Prenom_Nom $20. ;
    LN=length(scan(Prenom_Nom, -1,' ')) ;
    LPN=length(Prenom_Nom) ;
    Nom_Prenom=catx(' ', scan(Prenom_Nom, -1,' '), substr(Prenom_Nom, 1, LPN-LN)) ; 
    cards ;
    JEAN-MICHEL TANGY
    JEAN MICHEL TANGY
    ; run ;
    Cordialement Ward

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Inverser l'ordre du Nom Prénom
    NB : L'alternative gère l'absence de trait d'union dans le prénom mais pas dans le nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
           Prenom_Nom           LN    LPN           Nom_Prenom
    JEAN-MICHEL DUPONT-TANGY    12     24    DUPONT-TANGY JEAN-MICHEL
    JEAN MICHEL DUPONT-TANGY    12     24    DUPONT-TANGY JEAN MICHEL
    JEAN-MICHEL DUPONT TANGY     5     24    TANGY JEAN-MICHEL DUPONT
    JEAN MICHEL DUPONT TANGY     5     24    TANGY JEAN MICHEL DUPONT
    Cordialement,

  5. #5
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2018
    Messages : 14
    Points : 19
    Points
    19
    Par défaut
    Merci pour votre aide !

    Citation Envoyé par hossward Voir le message
    Bonjour,
    Une deuxième solution envisageable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data nom_prenom ;
    input Prenom_Nom $20. ;
    LN=length(scan(Prenom_Nom, -1,' ')) ;
    LPN=length(Prenom_Nom) ;
    Nom_Prenom=catx(' ', scan(Prenom_Nom, -1,' '), substr(Prenom_Nom, 1, LPN-LN)) ; 
    cards ;
    JEAN-MICHEL TANGY
    JEAN MICHEL TANGY
    ; run ;
    Cordialement Ward

  6. #6
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2018
    Messages : 14
    Points : 19
    Points
    19
    Par défaut
    Merci, votre solution marche très bien !

    Citation Envoyé par mgdondon Voir le message
    Bonjour,

    NB : Votre problème nécessite que les prénoms et les noms composés soient enregistrés comme tel, ce que vous pouvez vérifier en comptant le nombre de mots.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data test;
      input prenom_nom $20.;
      cards;
    JEAN-MICHEL TANGUY
    JEAN MICHEL TANGUY
    ;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data test;
      set test;
      countw=countw(prenom_nom, " ");
      if countw=2 then do;
        prenom=scan(prenom_nom, 1, " ");
        nom=scan(prenom_nom, 2, " ");
        nom_prenom=catx(" ", nom, prenom);
      end;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         prenom_nom        countw      prenom        nom          nom_prenom
     JEAN-MICHEL TANGUY       2      JEAN-MICHEL    TANGUY    TANGUY JEAN-MICHEL
     JEAN MICHEL TANGUY       3
    Cordialement,

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

Discussions similaires

  1. [Exchange 2010] Comment Afficher les noms de la liste d'adresse dans l'ordre 'Nom Prénom' ?
    Par tamyme dans le forum Exchange Server
    Réponses: 1
    Dernier message: 05/05/2011, 10h33
  2. Réponses: 10
    Dernier message: 26/12/2008, 11h17
  3. Réponses: 6
    Dernier message: 14/06/2006, 15h27
  4. inverser l'ordre de lecture des post
    Par serge-07 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 19/04/2006, 10h31
  5. [VB] Nom & Prénom : extraire Nom
    Par ptitsoleil87 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/12/2005, 12h02

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