Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 11h07   #1
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
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 :
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 !
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 11h18   #2
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
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é !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 11h21   #3
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
donc cela me donnerai:

Code :
1
2
3
4
PROC FORMAT;
value $vigule;
f=NUMX6.2;
RUN;
et après:

Code :
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 ?
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 11h31   #4
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
IL faut croiser la variable concernée avec le format voulu dans la proc tabulate

Code :
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;
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 11h35   #5
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
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 :
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;
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 12h17   #6
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
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 :
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;
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h00   #7
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Megamind2,

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

Merci beaucoup pour ton aide !
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h00.


 
 
 
 
Partenaires

Hébergement Web