<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: assistance creating financial year macro variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/assistance-creating-financial-year-macro-variable/m-p/78641#M256457</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's one method:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;%MACRO YEARDATES(SEED) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* If no value passed, assume todays date */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %IF %STR(&amp;amp;SEED) eq %THEN %LET SEED = date() ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; data _null_ ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do m = 1 to 12 ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month_start = intnx('month',&amp;amp;SEED,m-13,'b') ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month_end = intnx('month',&amp;amp;SEED,m-13,'e') ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput(cats('MS',m),cats("'",put(month_start,date9.),"'d")) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput(cats('ME',m),cats("'",put(month_end ,date9.),"'d")) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; options nosymbolgen nomprint ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %DO M = 1 %TO 12 ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %PUT %NRSTR(&amp;amp;MS)&amp;amp;M resolves to &amp;amp;&amp;amp;MS&amp;amp;M ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %PUT %NRSTR(&amp;amp;ME)&amp;amp;M resolves to &amp;amp;&amp;amp;ME&amp;amp;M ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %END ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MEND ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Then call the macro like this.... (check log afterwards) */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%YEARDATES ; /* date() as seed */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%YEARDATES('07feb2013'd) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then use the appropriate macro variables in your code, e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data last12months ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set mydata (where=(&amp;amp;MS1 &amp;lt;= date &amp;lt;= &amp;amp;ME12)) ;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Jan 2013 12:30:34 GMT</pubDate>
    <dc:creator>chrisj75</dc:creator>
    <dc:date>2013-01-18T12:30:34Z</dc:date>
    <item>
      <title>assistance creating financial year macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assistance-creating-financial-year-macro-variable/m-p/78640#M256456</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi&lt;/P&gt;&lt;P&gt;I am visting to create a macro variable on a accumulating financial year period, so that each month it will automatically select a date range based on the time period as we progress through the year. ie if it is Sep12 then I want to select records with a drawn date for Jul12 to Aug12, Jul11 to Aug11&lt;/P&gt;&lt;P&gt;or if its Feb13 then I want to select records for Jul12 to Jan13, Jul11 to Jan12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help in advance.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2013 00:47:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assistance-creating-financial-year-macro-variable/m-p/78640#M256456</guid>
      <dc:creator>magpie</dc:creator>
      <dc:date>2013-01-18T00:47:23Z</dc:date>
    </item>
    <item>
      <title>Re: assistance creating financial year macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assistance-creating-financial-year-macro-variable/m-p/78641#M256457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's one method:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;%MACRO YEARDATES(SEED) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* If no value passed, assume todays date */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %IF %STR(&amp;amp;SEED) eq %THEN %LET SEED = date() ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; data _null_ ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do m = 1 to 12 ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month_start = intnx('month',&amp;amp;SEED,m-13,'b') ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; month_end = intnx('month',&amp;amp;SEED,m-13,'e') ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput(cats('MS',m),cats("'",put(month_start,date9.),"'d")) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput(cats('ME',m),cats("'",put(month_end ,date9.),"'d")) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; options nosymbolgen nomprint ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %DO M = 1 %TO 12 ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %PUT %NRSTR(&amp;amp;MS)&amp;amp;M resolves to &amp;amp;&amp;amp;MS&amp;amp;M ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %PUT %NRSTR(&amp;amp;ME)&amp;amp;M resolves to &amp;amp;&amp;amp;ME&amp;amp;M ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %END ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MEND ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Then call the macro like this.... (check log afterwards) */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%YEARDATES ; /* date() as seed */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%YEARDATES('07feb2013'd) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then use the appropriate macro variables in your code, e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data last12months ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set mydata (where=(&amp;amp;MS1 &amp;lt;= date &amp;lt;= &amp;amp;ME12)) ;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2013 12:30:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assistance-creating-financial-year-macro-variable/m-p/78641#M256457</guid>
      <dc:creator>chrisj75</dc:creator>
      <dc:date>2013-01-18T12:30:34Z</dc:date>
    </item>
  </channel>
</rss>

