BookmarkSubscribeRSS Feed
Webinar SAS y Excel 2021 | Códigos: Capítulo 5 "Cómo extraño esa función de Excel"
Berenice25
SAS Employee

¡Hola!

Les compartimos los siguientes códigos, que forman parte del capítulo "Cómo extraño esa función de Excel" del pasado webinar Saliendo de Excel entrando al mundo SAS con fecha del 22 de septiembre del 2021. Encontrarás los siguientes:

  1. EVEN + ODD
  2. PRODUCT
  3. MULTINOMIAL
  4. FACTORIAL.DOBLE
  5. LISTA DE FUNCIONES DE EXCEL EN SAS 

Puedes revisar nuevamente la grabación si tienes alguna duda.

No te pierdas de nuestra próxima publicación con el ejemplo Diamante💎

 

  • EVEN + ODD
    /************************************/
    /*									*/
    /*   SAS - Customer Success Latam 	*/
    /*									*/
    /************************************/
    
    /************************************/
    /*									*/
    /*      Webinar: SAS y Excel		*/
    /*            22Sept2021            */
    /*									*/
    /************************************/
    
    /************************************/
    /* Expositor: Daniel Vazquez Vargas */
    /************************************/
    
    
    /************************************/
    /* 	  Funciones de Excel en SAS		*/
    /* 		 Funciones ODD y EVEN		*/
    /************************************/
    
    
    /*--------*/
    /* inicio */
    /*--------*/
    
    /* Función ODD (redondea.impar) */
    /* Redondea un número hasta el próximo entero impar. */
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       x = 1.1;
       y = odd_slk(x);
       put 'impar( ' x ') = ' y;
    run;
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       x = 3;
       y = odd_slk(x);
       put 'impar( ' x ') = ' y;
    run;
    
    
    
    /* Función EVEN (redondea.par) */
    /* Redondea un número hasta el próximo entero par. */
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       x = 6.3;
       y = even_slk(x);
       put 'par( ' x ') = ' y;
    run;
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       x = 7.1;
       y = even_slk(x);
       put 'par( ' x ') = ' y;
    run;
    
    
    /* Cuidado con el comportamiento de estas funciones si los números son negativos */
    /* Por ejemplo: */
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       x = -6.3;
       y = even_slk(x);
       put 'par( ' x ') = ' y; /* ¿qué significa ser "mayor"? ¿-8 es mayor que -6.3? Ojo con esto... */
    run;
    
    
    /*--------*/
    /*  fin	  */
    /*--------*/
  • PRODUCT
    /************************************/
    /*									*/
    /*   SAS - Customer Success Latam 	*/
    /*									*/
    /************************************/
    
    /************************************/
    /*									*/
    /*      Webinar: SAS y Excel		*/
    /*            22Sept2021            */
    /*									*/
    /************************************/
    
    /************************************/
    /* Expositor: Daniel Vazquez Vargas */
    /************************************/
    
    
    /************************************/
    /* 	  Funciones de Excel en SAS		*/
    /* 		 Función PRODUCT	 		*/
    /************************************/
    
    
    /*--------*/
    /* inicio */
    /*--------*/
    
    /* Función PRODUCT */
    /* Esta función multiplica todos los elementos de un Array numérico y devuelve el producto */
    
    /* Ejemplo */
    /* array y = ( 2 7 1 2 5 ) */
    /* El cálculo es: 2 x 7 x 1 x 2 x 5 = 140 */
    /* Entonces: product(y) = 140 */
    
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       array x x1-x5 (2, 7, 1, 2, 5);
       p = product_slk(x);
       put 'x = ( ' x1-x5 ')';
       put 'product(x) = ' p;
    run;
    
    
    data _null_;
       array ejemplo x1-x5 (2, 7, 1, 2, 5);
       p = product_slk(ejemplo);
       put 'El array ejemplo es: ( ' x1-x5 ')';
       put 'Y el producto es...: product(x) = ' p;
    run;
    
    
    /*--------*/
    /*  fin	  */
    /*--------*/
  • MULTINOMIAL
    /************************************/
    /*									*/
    /*   SAS - Customer Success Latam 	*/
    /*									*/
    /************************************/
    
    /************************************/
    /*									*/
    /*      Webinar: SAS y Excel		*/
    /*            22Sept2021            */
    /*									*/
    /************************************/
    
    /************************************/
    /* Expositor: Daniel Vazquez Vargas */
    /************************************/
    
    
    /************************************/
    /* 	  Funciones de Excel en SAS		*/
    /* 		 Función MULTINOMIAL 		*/
    /************************************/
    
    
    /*--------*/
    /* inicio */
    /*--------*/
    
    
    /* Función MULTINOMIAL */
    /* Esta función devuelve la razón (o el cociente) del número factorial de la suma de los argumentos, dividido
    por la suma de los números factoriales de cada elemento */
    
    /* Es decir que: */
    /* MULTINOMIAL(a1, a2, ... , an) = (a1 + a2 + ... + an)! : (a1! a2! ... an!) */
    
    /* Ejemplo: */
    /* e = ( 1 3 2 ) */
    /* multinomial(e) = 60 */
    /* Y el cálculo es: (1+3+2)! : (1! x 3! x 2!) = 720 : 12 = 60 */
    
    /* En SAS, el argumento de esta función corresponde a un array numérico */ 
    
    
    
    options cmplib=SASHELP.SLKWXL;
    data _null_;
       array a a1-a3 (1, 3, 2);
       m = multinomial_slk(a);
       put 'a = ( ' a1-a3 ')';
       put 'Y el resultado es...: multinomial(a) = ' m;
    run;
    
    
    /*--------*/
    /*  fin	  */
    /*--------*/
  • FACTORIAL.DOBLE
/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/

/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            22Sept2021            */
/*									*/
/************************************/

/************************************/
/* Expositor: Daniel Vazquez Vargas */
/************************************/



/************************************/
/* 	  Funciones de Excel en SAS		*/
/* 		 Función FACTDOUBLE 		*/
/************************************/

/*--------*/
/* inicio */
/*--------*/


/* Función FACTDOUBLE (Fact.doble) */
/* Esta función devuelve the factorial doble (o semifactorial) de un número. Si el número no es entero, entonces será truncado. */
/* Si el número es n, se escribe como n!! */
/* Y el resultado será el producto de todos los números enteros de 1 a n, que tienen la misma paridad que n */
/* Si n es par, el doble factorial es n!!=n(n-2)(n-4)…(4)(2) */ 
/* Si n es impar, the doble factorial is n!! = n(n-2)(n-4)…(3)(1) */

/* Por ejemplo: */
/* 6 !! = 48 */
/* 7 !! = 105 */
/* Porque 6!! = 6 x 4 x 2 = 48 y 7!! = 7 x 5 x 3 x 1 = 105*/

options cmplib=SASHELP.SLKWXL;
data _null_;
   n = 6;
   m = 7;
   nn = factdouble_slk(n);
   mm = factdouble_slk(m);
   put n '!! = ' nn / m '!! = ' mm;
run;


/*--------*/
/*  fin	  */
/*--------*/
  • LISTA DE FUNCIONES DE EXCEL EN SAS 
/************************************/
/*									*/
/*   SAS - Customer Success Latam 	*/
/*									*/
/************************************/

/************************************/
/*									*/
/*      Webinar: SAS y Excel		*/
/*            22Sept2021            */
/*									*/
/************************************/

/************************************/
/* Expositor: Daniel Vazquez Vargas */
/************************************/


/************************************/
/* 	  Lista de funciones de 		*/
/* 		 Excel en SAS		 		*/
/************************************/


/*--------*/
/* inicio */
/*--------*/

proc fcmp inlib=SASHELP.SLKWXL listall; /* el procedimiento fcmp (function Compiler) permite
											crear, testear y guardar  funciones propias */
run;


ods noresults;  /* ods = output delivery system */
ods output codelist=WORK.EXCEL_FUNCTIONS_LIST (keep=COL1 COL2);
proc fcmp inlib=SASHELP.SLKWXL listall;
run;
ods output close;
ods results;



data WORK.EXCEL_SAS_FUNCTIONS (keep=exc sas arg);
   label exc='Función Excel' sas='Función SAS' arg='Argumentos';
   set WORK.EXCEL_FUNCTIONS_LIST (rename=(col2=arg));
   sas = tranwrd(col1,'Function ','');
   exc = tranwrd(sas,'_slk','');
run;
 
ods html path='c:\temp' file='funciones_excel_sas.html';
title 'Lista de funciones de Excel disponibles en SAS (vía SASHELP.SLKWXL)';
proc print data=EXCEL_SAS_FUNCTIONS label;
run;
ods html close;


/*--------*/
/*  fin	  */
/*--------*/

Cualquier duda por favor contáctanos 

Saludos.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Article Labels
Article Tags
Contributors