BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
DATACOOL
Fluorite | Level 6

Hola, espero estén todos bien.

como dice el titulo, qquisiera pasar a mayuscula un mes resultado de unos calculos. Anexo el conigo de como lo estoy haciendo y no funciona.

Disculpen, soy nueva.

Gracias de antemano.

%let today=%sysfunc(today());
%PUT &today;
%LET DATE = %sysfunc( putn( %sysfunc( date() ), DDMMYY10. ));
%LET MESmin = %sysfunc(putn(%sysfunc(intnx(month,&today,1,S)),ESPDFMN.));
%PUT $MESmin;
%LET MES = UPCASE($MESmin);
%Put &DATE;
%Put &MES;

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

@ElizaM wrote:

Que tal DATACOOL! 

 

Te comparto una forma de hacerlo muy simplificado, espero sea de utilidad para lo que necesitas. 


Data _null_;
Call Symputx("Fecha", put(today(),DDMMYY10.));
Call Symputx("Mes", Upcase(put(month(&fecha.),ESPDFMN.)));
Run;
%Put &=Fecha &=Mes;

 

 

Y como observación en las líneas de código que posteaste pusiste signo de pesitos en la línea 5 del código (%PUT $MESmin;) y para invocar una macrovariable debe ser con &. 

 

¡Saludos! 


Or even simpler:

data _null_;
call symputx("mes", upcase(put(today(),espdfmn.)));
run;
%put &=mes;

 

--
Paige Miller

View solution in original post

12 REPLIES 12
PaigeMiller
Diamond | Level 26
%LET MES = %UPCASE(&MESmin);

Note, the % sign before UPCASE and &MESmin rather than what you typed which was $MESmin.

--
Paige Miller
DATACOOL
Fluorite | Level 6
Thanks so much for the help
ElizaM
SAS Employee

Que tal DATACOOL! 

 

Te comparto una forma de hacerlo muy simplificado, espero sea de utilidad para lo que necesitas. 


Data _null_;
Call Symputx("Fecha", put(today(),DDMMYY10.));
Call Symputx("Mes", Upcase(put(month(&fecha.),ESPDFMN.)));
Run;
%Put &=Fecha &=Mes;

 

 

Y como observación en las líneas de código que posteaste pusiste signo de pesitos en la línea 5 del código (%PUT $MESmin;) y para invocar una macrovariable debe ser con &. 

 

¡Saludos! 

PaigeMiller
Diamond | Level 26

@ElizaM wrote:

Que tal DATACOOL! 

 

Te comparto una forma de hacerlo muy simplificado, espero sea de utilidad para lo que necesitas. 


Data _null_;
Call Symputx("Fecha", put(today(),DDMMYY10.));
Call Symputx("Mes", Upcase(put(month(&fecha.),ESPDFMN.)));
Run;
%Put &=Fecha &=Mes;

 

 

Y como observación en las líneas de código que posteaste pusiste signo de pesitos en la línea 5 del código (%PUT $MESmin;) y para invocar una macrovariable debe ser con &. 

 

¡Saludos! 


Or even simpler:

data _null_;
call symputx("mes", upcase(put(today(),espdfmn.)));
run;
%put &=mes;

 

--
Paige Miller
DATACOOL
Fluorite | Level 6

Ohhh cielos, mil gracias de verdad! 

Excelente solución 

ElizaM
SAS Employee
Con gusto 😃

A seguir practicando!
PaigeMiller
Diamond | Level 26

Also:

 

%let today=%sysfunc(today());
%let month = %upcase(%sysfunc(putn(%sysfunc(intnx(month,&today,1)),espdfmn.)));
%put &=month;

 

--
Paige Miller
sardav
SAS Employee

Hola Datacool!

Pero necesitás usar lenguaje de macros por algo en particular?

Porque seguramente lo podrías resolver sin usar macros. Salvo que eso es lo que estés buscando, claro.

Salu2.

PaigeMiller
Diamond | Level 26

@sardav wrote:

Hola Datacool!

Pero necesitás usar lenguaje de macros por algo en particular?

Porque seguramente lo podrías resolver sin usar macros. Salvo que eso es lo que estés buscando, claro.

Salu2.


The only reason I can think of to require macros here is to use the month name in a title or label or file name.

--
Paige Miller
sardav
SAS Employee

Ok, si es para usarlo en títulos y/o etiquetas y/o nombres de archivos --> estamos de acuerdo!

ereemm
Calcite | Level 5

¡Hola! Parece que estás utilizando SAS para realizar tus cálculos. En tu código, estás tratando de convertir un mes en minúsculas a mayúsculas utilizando la función UPCASE. Sin embargo, parece que estás utilizando una sintaxis incorrecta.

ereemm
Calcite | Level 5

Gracias por señalar la discrepancia y espero que esta corrección sea útil. Si tienes más preguntas o necesitas más ayuda, no dudes en preguntar. En su código, está intentando convertir un mes en minúsculas a un mes en mayúsculas utilizando la función UPCASE. Te recomendaría que tomaras como ejemplo https://onlinecasinojuegos.com/resenas/unique-casino que es un buen campo de juego. Sin embargo, parece que estás utilizando una sintaxis incorrecta.

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Discussion stats
  • 12 replies
  • 2565 views
  • 16 likes
  • 5 in conversation