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 :

Proc export en conversant les formats SAS


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut Proc export en conversant les formats SAS
    Bonjour,

    j'ai une base SAS avec des chiffres et des pourcentages que je souhaite exporter en conservant le format pourcentage.
    Quand je fais un envoi vers Excel (Send to), les pourcentages sont conservés mais quand je fais un proc export, les pourcentages sont en 0.001 ...

    Est il possible de les conserver en proc export ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    %macro export();
    options label;
    %do i=1 %to &nb_camp.;
    	%let campagne=%scan("&liste_camp.",&i, " " );
     
    	proc export dbms=XLSX
    	     outfile="~/NAS/F/reporting/Avy/Analyse_campagne/Resultats_&campagne..xlsx"
    	     data=resultats2 ( where=(camp_id=&campagne.))replace label; 
    		 sheet="resultats";
    	run;
     
    %end;
    %mend;
    %export;
    Autre point sur les formats, je souhaiterais mettre les chiffres avec une séparation sur les milliers ?

    Merci pour votre aide
    Avy

  2. #2
    Membre régulier
    Femme Profil pro
    Chargée d'études
    Inscrit en
    Septembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargée d'études
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 22
    Points : 107
    Points
    107
    Par défaut
    Bonjour,

    J'ai déjà connu ce problème et si ta base n'est pas trop grosse tu peux "tricher" avec un ods excel (si tu as la dernière version de SAS 9.4 TS1M3) ou ods tagsets.excelxp (xls) si tu as une ancienne version, suivi d'un proc print.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ods excel file="D:\test_excel_format.xlsx" ;
    proc print data=mabase noobs ;
    run;
    ods excel close;
    Bonne journée

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Bonjour Elodie,

    Merci pour ton retour.
    Je commencais à desespérer pour ce post.

    Cela ne fonctionne pas de mon coté, ni ods excel ni ods excelxp.
    j'ai un message d'erreur :
    ERROR 180-322: Statement is not valid or it is used out of proper order.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ods excelxp file="~/NAS/F/reporting/Avy/Analyse_campagne/Resultats_test_ods.xls";
    proc print data=resultats2 noobs ;
    run;
    ods excelxp close;
    Bonne journée

  4. #4
    Membre régulier
    Femme Profil pro
    Chargée d'études
    Inscrit en
    Septembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargée d'études
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 22
    Points : 107
    Points
    107
    Par défaut
    Il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ods tagsets.excelxp file="~/NAS/F/reporting/Avy/Analyse_campagne/Resultats_test_ods.xls";
    proc print data=resultats2 noobs ;
    run;
    ods tagsets.excelxp close;
    Et normalement ça marche

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Parfait, ca marche.
    Il faut juste que je change l'aspect de la sortie.
    Merci bcp !!

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Hello,

    Je rebondis sur la discussion toujours au sujet des formats pourcentages.
    Effectivement le format est bien pris en compte seulement le contenu de la cellule excel est par exemple comme ceci "1.3%".
    Donc on ne peut utiliser les pourcentages en valeur pour éventuellement calculer d'autres indicateurs.
    Il aurait fallu que le contenu de la cellule reste en brut comme ceci "0.013".
    Savez vous comment pourrais je faire ?

    J'ai essayer avec une proc report mais j'ai le même soucis quand j'applique le format percent.

    merci par avance pour votre aide

  7. #7
    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 Proc export en conversant les formats SAS
    Bonjour,

    Quelle version de SAS utilisez-vous ?

    D'après les précédents messages vous semblez utiliser ods tagsets.excelxp qui donne le résultat escompté, au moins en SAS 9.4. Voir aussi la fiche L’export de SAS vers Excel expliqué à ma fille d'Olivier Decourt.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data test;
      input pct;
      cards;
      0.013
      ;
    run;
     
    data test;
      set test;
      format pct percent8.2;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ods tagsets.excelxp file="d:/temp/test.xls";
    proc print data=test noobs ;
    run;
    ods tagsets.excelxp close;
    Remarque : ods tagsets.excelxp crée une cellule au format Pourcentage alors que ods excel crée une cellule au format 0.00"%" si bien qu'on obtient 1.3 au lieu de 0.013 quand on repasse la cellule au format standard.

    Cordialement,

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    BOnjour,

    Merci pour votre retour.
    Aujourd'hui, on ne travaille plus sur SAS mais sur WPS mais mon code est en SAS donc je ne peux vous répondre pour la version.

    En fait, je vais reformuler mon pbm.
    J'essaye d'obtenir un pourcentage affiché en pourcentage soit 1.3% mais par la suite j'aimerais les utiliser dans des calculs.
    Ce qui m'est impossible car en sortie, la cellule contient "1.3%".

    Je peux passer par un autre ods si cela solutionne le pbm...
    J'ai meme tenté une proc report mais j'ai le meme soucis.

    Merci par avance.
    Cdt

  9. #9
    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 Proc export en conversant les formats SAS
    Bonjour,

    J'ai bien compris votre problème mais je n'arrive pas à le reproduire. Je n'obtiens "1.3%" ni avec ods tagsets.excelxp ni avec ods excel. Dans les deux cas le pourcentage est considéré comme un nombre (aligné à droite par défaut dans Excel) mais celui-ci n'est pas correct avec ods excel :

    Nom : Sans titre.png
Affichages : 2995
Taille : 4,2 Ko

    Peut-être le fonctionnement est-il différent dans WPS et devriez-vous poser la question sur un forum WPS ?

    Cordialement,

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Data Manager
    Inscrit en
    Novembre 2012
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Manager

    Informations forums :
    Inscription : Novembre 2012
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Merci bcp!
    Effectivement, le souci vient bien de WPS...

    Merci

  11. #11
    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 Proc export en conversant les formats SAS
    Bonjour,

    Vous pouvez utiliser la formule suivante dans Excel pour utiliser le pourcentage dans des calculs : CNUM(SUBSTITUE(A1,CAR(34),"")) en considérant que votre pourcentage est en cellule A1 (CAR(34) correspond au guillemet).

    Cordialement,

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

Discussions similaires

  1. probleme export des formats sas vers excel
    Par Invité dans le forum SAS Base
    Réponses: 10
    Dernier message: 11/07/2012, 12h19
  2. Fonctionnalité perdue avec la proc Export de 9.2: les quotes
    Par Laurinette57 dans le forum SAS Base
    Réponses: 8
    Dernier message: 30/03/2011, 15h06
  3. [2008] Choisir les formats d'exports disponibles
    Par mgesche dans le forum SSRS
    Réponses: 3
    Dernier message: 15/03/2011, 17h10
  4. Proc export d'une table SAS dans un répertoire
    Par r_dani dans le forum SAS Base
    Réponses: 1
    Dernier message: 04/11/2008, 12h34
  5. Formats sas qui n’apparaissent qu’à la proc print.
    Par jujubebere dans le forum SAS Base
    Réponses: 4
    Dernier message: 04/08/2008, 14h48

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