Join Now

Juletip #20: Funktions-format

by SAS Employee OleSteen on ‎12-18-2014 08:05 AM (225 Views)

Så blev det weekend igen, og jeg fik lige lyst til at dele endnu et juletip.

Som jeg skrev om i sidste weekend, er jeg ret fascineret af muligheden for at skrive egne funktioner, og når så de kan kombineres med en anden stærk funktionalitet, nemlig formater, ja så er det jo helt vildt.

Funktions-formatet her, vil medføre at jeg får en rullende måde at vise datoer. I dette eksempel, vil datoer for seneste måned blive vist pr. dag, datoer som ligger i foregående 2 kvartaler vises pr. måned, og tidligere datoer vises pr. kvartal; altså vil en rapport for den 20. december give følgende inddeling:

Dato.JPG

For at få denne rullende effekt, har jeg bygget en funktion PERIODE (vedhæftet - periode_funktion.sas), som vha. funktionen INTNX, danner den ønskede periode.

Derefter har jeg lavet et format, som anvender funktionen med følgende kode:

proc format;

  value per (default=40) low-high = [periode()];

run;

I eksemplet som jeg har vedhæftet (test_periode_format.sas), er der indsat en macrovariabel, så du har mulighed for at teste funktionaliteten på vilkårlige datoer. Endelig oprettes en meget simpel test-tabel som printes med PROC TABULATE så du kan se resultatet.

God fornøjelse.

Go' jul.

/Ole Steen

Attachment
Attachment