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

Macro Discussion :

Macro numerotation sur sas


Sujet :

Macro

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Mexique

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Novembre 2016
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Macro numerotation sur sas
    Bonjour,
    J'ai des données organisées de la manière suivante:
    client mois valeurs
    01 jan v1j
    01 fev v1f
    01 mar v1m
    02 jan v2j
    02 fev v2f
    02 mar v2m
    ... . .
    . . .
    99 jan v99j
    99 fev v99f
    99 mar v99m

    J'aimerais créer une variable de type caractère qui me donnerait le resulta suivant:

    client mois valeurs variable
    01 jan v1j client_1
    01 fev v1f client_1
    01 mar v1m client_1
    02 jan v2j client_2
    02 fev v2f client_2
    02 mar v2m client_2
    ... . .
    . . .
    99 jan v99j client_99
    99 fev v99f client_99
    99 mar v99m client_99
    Me pourriez-vous recommander une macros sas capable de le faire? Merci beaucoup!

    Salut,

    GAJP

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Points : 108
    Points
    108
    Par défaut
    Bonjour,
    je ne vois pas l'intérêt de passer par une macro.

    Voici une solution avec une macro pour du beurre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    data client_mois;
    infile datalines delimiter=','; 
    input client $ mois $ valeurs $;
    datalines;
    01,jan,v1j
    01,fev,v1f
    01,mar,v1m
    02,jan,v2j
    02,fev,v2f
    02,mar,v2m
    99,jan,v99j
    99,fev,v99f
    99,mar,v99m,
    ;run;
    %macro A;
    data client_mois2; set client_mois;
    client_num=input(client,3.);
    client_number= compress("client_" || client_num,' ');
    proc print data=client_mois2;
    run;
    %mend;
     
    %A;

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Mexique

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Novembre 2016
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Salut Alex fred,
    Un grand merci pour ton coup de main! J'ai quand meme un petit doute. Si dans la colonne client j'ai des noms de personnes, la fonction input ne fait plus le travail dans la macro. Il y a t-il une autre fonction que permettrait d'avoir le même résultat dans ce cas la? Merci!

    Salut,

    GAJP

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Points : 108
    Points
    108
    Par défaut
    Bonjour il te suffit de changer légèrement le code.
    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    data client_moisB;
    infile datalines delimiter=','; 
    input client $ mois $ valeurs $;
    datalines;
    Dupont,jan,v1j
    Dupont,fev,v1f
    Dupont,mar,v1m
    Durant,jan,v2j
    Durant,fev,v2f
    Durant,mar,v2m
    Martin,jan,vMartinj
    Martin,fev,vMartinf
    Martin,mar,vMartinm,
    ;run;
     
    %macro A3;
    proc sort data=client_moisB;by client;run;
     
    data client_mois2C; set client_moisB;by client;
    retain compteur 0;
    if first.client then compteur=compteur+1;
    *client_num=input(client,3.);
    client_number= compress(compteur|| "_" || client,' ');run;
     
    proc print data=client_mois2C;
    run;
    %mend;
     
    %A3;
    ce qui te donne comme résultat:
    Obs. client mois valeurs compteur client_number
    1 Dupont jan v1j 1 1_Dupont
    2 Dupont fev v1f 1 1_Dupont
    3 Dupont mar v1m 1 1_Dupont
    4 Durant jan v2j 2 2_Durant
    5 Durant fev v2f 2 2_Durant
    6 Durant mar v2m 2 2_Durant
    7 Martin jan v3j 3 3_Martin
    8 Martin fev v3f 3 3_Martin
    9 Martin mar v3m 3 3_Martin

    Dis moi si cela te convient.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Mexique

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Novembre 2016
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Hola Alex Fred,
    C'est parfait. Je l'ai modifié un poil mais c'est exactement ce que je voulais. Merci Beaucoup mon cher!

    Salut,

    GAJP

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2016, 15h00
  2. Macro %AIDEACM suite à une PROC CORRESP sur SAS
    Par Felizzy dans le forum Macro
    Réponses: 3
    Dernier message: 19/01/2011, 20h20
  3. [débutant][macros] préscisions sur #define
    Par Spartan03 dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2006, 18h44
  4. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 19h51
  5. Macro VBA sur Access
    Par beurnoir dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 17h46

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