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

ODS et reporting Discussion :

ODS EXCEL - PROC TABULATE : remplacer le caractère décimal "le point" par une virgule


Sujet :

ODS et reporting

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut ODS EXCEL - PROC TABULATE : remplacer le caractère décimal "le point" par une virgule
    Bonjour,

    J'ai tjs réussi à trouver une solution à mes problèmes et en voilà un autre !

    Je crée des fichiers EXCEL avec une sortie ODS, et par un PROC TABULATE.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ODS HTML FILE="&rootmain.\SAS\HTML\xxx.xls";
    	TITLE "xxx";
    	PROC TABULATE  DATA=source.client;
    	CLASS nom_variable;
    	VAR number;
    	CLASSLEV nom_variable/ STYLE=[BACKGROUND=$Color_lifestyle.];
    	TABLE   (nom_variable='' ALL= 'Total'), 
    			(number= "Customers") 
    			* (N= 'Effectifs ' PCTN= "%");
    	RUN;
    ODS HTML CLOSE;
    Je souhaiterais lors de la création du fichier EXCEL de sortir les chiffres non pas avec un point, mais avec une virgule, donc avoir le format NUMXx.d.
    Est-ce que cela est possible ?

    Merci pour vos réponses !

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    rajoute donc une ligne FORMAT ... numx avant ton run ?

    ensuite tu peux tester dans TABLE avec quelque chose comme nom_variable*f=numx...
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    donc cela me donnerai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROC FORMAT;
    value $vigule;
    f=NUMX6.2;
    RUN;
    et après:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ODS HTML FILE="&rootmain.\SAS\HTML\xxx.xls";
    	TITLE "xxx";
    	PROC TABULATE  DATA=source.client;
    	CLASS nom_variable;
    	VAR number;
    	CLASSLEV nom_variable/ STYLE=[BACKGROUND=$Color_lifestyle.];
    	TABLE   (nom_variable='' ALL= 'Total'), 
    			(number= "Customers") 
    			* (N= 'Effectifs '*f=$virgule. PCTN= "%");
    	RUN;
    ODS HTML CLOSE;
    C'est ça ?

  4. #4
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    IL faut croiser la variable concernée avec le format voulu dans la proc tabulate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ODS HTML FILE="&rootmain.\SAS\HTML\xxx.xls";
    	TITLE "xxx";
    	PROC TABULATE  DATA=source.client;
    	CLASS nom_variable;
    	VAR number;
    	CLASSLEV nom_variable/ STYLE=[BACKGROUND=$Color_lifestyle.];
    	TABLE   (nom_variable*f=NUMX6.2='' ALL= 'Total'), 
    			(number= "Customers") 
    			* (N= 'Effectifs '*f=$virgule. PCTN= "%");
    	RUN;
    ODS HTML CLOSE;

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Megamind2,

    Je comprends ce que tu essayes de me dire. je souhaiterais savoir s'il était possible de mettre un format pour le pourcentage. Mettre une virgule à la place du point. Est-ce possible ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ODS HTML FILE="&rootmain.\SAS\HTML\xxx.xls";
    	TITLE "xxx";
    	PROC TABULATE  DATA=source.client;
    	CLASS nom_variable;
    	VAR number;
    	CLASSLEV nom_variable/ STYLE=[BACKGROUND=$Color_lifestyle.];
    	TABLE   (nom_variable ALL= 'Total'), 
    			(number= "Customers") 
    			* (N= 'Effectifs ' PCTN= "%");
    	RUN;
    ODS HTML CLOSE;

  6. #6
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Je n'arrive pas à combiner le format NUMX. avec le %.
    Mais avec un peu de bidouillage, on peut y arriver mais c'est pas sexy !

    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
    PROC TABULATE DATA=SASHELP.CLASS OUT=OUT;
    CLASS SEX NAME;
    VAR WEIGHT ;
    TABLE (SEX ALL= 'Total'), 
     ( PCTN*f=numx6.2);
    RUN;
     
    DATA OUT;
    SET OUT;
    PctN_0_bis=COMPRESS(TRANWRD(put(PctN_0,best.),".",",")!!"%");
    DROP _TYPE_ _PAGE_ _TABLE_ PctN_0;
    RENAME PctN_0_bis=PctN_0;
     
    RUN;
     
    ODS HTML FILE="C:\Documents and Settings\BEARE\Bureau\Astycot\xxx.xls";
     
    	PROC PRINT DATA=OUT NOOBS;
    	RUN;
     
    ODS HTML CLOSE;

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Megamind2,

    Certe ton programme n'est pas très sexy, mais il fonctione ! .

    Merci beaucoup pour ton aide !

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

Discussions similaires

  1. [Free Pascal] Remplacer les caractères spéciaux d'un document HTML par les entités correspondantes
    Par Roland Chastain dans le forum Free Pascal
    Réponses: 18
    Dernier message: 21/06/2014, 12h50
  2. Réponses: 28
    Dernier message: 26/01/2014, 13h15
  3. [PROC] Remplacer un point par une virgule dans une Proc Tabulate
    Par PAULOM dans le forum SAS Base
    Réponses: 2
    Dernier message: 20/08/2009, 08h36
  4. remplacer un point par une virgule
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2008, 09h43
  5. [C#] Remplacer un point par une virgule
    Par SLicTa dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/01/2008, 13h08

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