<?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 Macro Name Resolution - ERROR 180-322 in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21381#M3441</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, if &lt;STRONG&gt;edateset &lt;/STRONG&gt;is a macro variable, do this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let edateset=18871;&lt;BR /&gt;%macro exclude(count);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %global e&amp;amp;x.monthago;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let e&amp;amp;x.monthago = %sysfunc(intnx(month,&amp;amp;edateset,-&amp;amp;x.));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;%mend exclude;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%exclude(6);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put e1monthago=&amp;amp;e1monthago;&lt;BR /&gt;%put e2monthago=&amp;amp;e2monthago;&lt;BR /&gt;%put e3monthago=&amp;amp;e3monthago;&lt;BR /&gt;%put e4monthago=&amp;amp;e4monthago;&lt;BR /&gt;%put e5monthago=&amp;amp;e5monthago;&lt;BR /&gt;%put e6monthago=&amp;amp;e6monthago;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 30 Sep 2011 20:03:19 GMT</pubDate>
    <dc:creator>BobD</dc:creator>
    <dc:date>2011-09-30T20:03:19Z</dc:date>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21368#M3428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Assuming that the &lt;STRONG&gt;edateset&lt;/STRONG&gt; variable is a SAS date (18871), I'm looping through 6 times and my desired result is decrease by one month so:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e1monthago should = 18840&lt;/P&gt;&lt;P&gt;e2monthago should = 18809 &lt;/P&gt;&lt;P&gt;e3monthago should = 18778 &lt;/P&gt;&lt;P&gt;etc...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead, I'm getting e1monthago, e2monthago, e3monthago, etc...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I resolve e&amp;amp;x.monthago to be a SAS Date instead of "e1monthago"?&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro exclude(count);&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e&amp;amp;x.monthago = intnx('month',edateset,-&amp;amp;x.); &lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%mend exclude;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%exclude(6);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Works but produces we following error and need help resolving it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;15933&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro exclude(count);&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15934&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15935&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15936&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e&amp;amp;x.monthago = intnx('month',edateset,-&amp;amp;x.);&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15937&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15938&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend exclude;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15939&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;15940&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %exclude(6);&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; Beginning execution.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; Parameter COUNT has value 6&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %LOCAL&amp;nbsp; X&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable COUNT resolves to 6&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop beginning; index variable X; start value is 1; stop&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value is 6; by value is 1.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 1&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE: Line generated by the macro variable "X".&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1monthago&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #993300;"&gt;----------&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 1&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MPRINT(EXCLUDE):&amp;nbsp;&amp;nbsp; e1monthago = intnx('month',edateset,-1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop index variable X is now 2; loop will iterate again.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 2&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 2&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MPRINT(EXCLUDE):&amp;nbsp;&amp;nbsp; e2monthago = intnx('month',edateset,-2);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop index variable X is now 3; loop will iterate again.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 3&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE: Line generated by the macro variable "X".&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e2monthago&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &lt;SPAN style="color: #993300;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 3&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MPRINT(EXCLUDE):&amp;nbsp;&amp;nbsp; e3monthago = intnx('month',edateset,-3);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop index variable X is now 4; loop will iterate again.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 4&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE: Line generated by the macro variable "X".&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e3monthago&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 4&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MPRINT(EXCLUDE):&amp;nbsp;&amp;nbsp; e4monthago = intnx('month',edateset,-4);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop index variable X is now 5; loop will iterate again.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 5&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE: Line generated by the macro variable "X".&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e4monthago&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 5&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MPRINT(EXCLUDE):&amp;nbsp;&amp;nbsp; e5monthago = intnx('month',edateset,-5);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop index variable X is now 6; loop will iterate again.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 6&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE: Line generated by the macro variable "X".&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e5monthago&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;SYMBOLGEN:&amp;nbsp; Macro variable X resolves to 6&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MPRINT(EXCLUDE):&amp;nbsp;&amp;nbsp; e6monthago = intnx('month',edateset,-6);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; %DO loop index variable X is now 7; loop will not iterate&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; again.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;MLOGIC(EXCLUDE):&amp;nbsp; Ending execution.&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE: Line generated by the macro variable "X".&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e6monthago&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #993300;"&gt;&lt;STRONG&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Robby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 14:40:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21368#M3428</guid>
      <dc:creator>robby_beum</dc:creator>
      <dc:date>2011-09-30T14:40:24Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21369#M3429</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You appear to be trying to create a dataset variable, but not within a datastep.&amp;nbsp; Where do you expect those six variables to reside?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 14:46:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21369#M3429</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-09-30T14:46:15Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21370#M3430</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good Morning Art,&lt;/P&gt;&lt;P&gt;I've cut down the code...the next statement would be something like "call symput('e3monthago',e3monthago);" to make it a macro variable to be called any where in the program.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think the %let statement takes care of the error&amp;nbsp; "%let e&amp;amp;x.monthago = intnx('month',edateset,-&amp;amp;x.);"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Robby&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Courier New; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 14:52:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21370#M3430</guid>
      <dc:creator>robby_beum</dc:creator>
      <dc:date>2011-09-30T14:52:52Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21371#M3431</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, a %let statement would work.&amp;nbsp; Call symput would give you an error as, again, it isn't wrapped within a datastep.&amp;nbsp; You may have to declare the macro variables as global if you need to access them throughout your program.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 14:58:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21371#M3431</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-09-30T14:58:12Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21372#M3432</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %put %exclude(6);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 17:24:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21372#M3432</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-09-30T17:24:28Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21373#M3433</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I guess I should piont out that my desired needed result is to resolve "e&amp;amp;x.monthago" to have a SAS Date 18840, 18809, 18879, etc... and not e1monthago, e2monthago, e3monthago, etc...if that makes sense.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, I've only been able to get the "e1monthago, e2monthago, e3monthago, etc..." and not the "18840, 18809, 18879, etc..."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Robby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 17:32:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21373#M3433</guid>
      <dc:creator>robby_beum</dc:creator>
      <dc:date>2011-09-30T17:32:06Z</dc:date>
    </item>
    <item>
      <title>Re: Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21374#M3434</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am confused.&amp;nbsp; Let me try to re-state the task.&lt;/P&gt;&lt;P&gt;You have a MACRO variable EDATESET that contains a SAS date value.&lt;/P&gt;&lt;P&gt;You want to generate COUNT new MACRO variables that contain SAS date values for the previous COUNT months.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway try:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;%macro exclude(count,sdate);&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;%local i var;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;%do i=1 %to &amp;amp;count ;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; %let var=e&amp;amp;i.monthago;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; %global &amp;amp;var;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; %let &amp;amp;var=%sysfunc(&lt;STRONG style="font-size: 13px;"&gt;intnx(month,&amp;amp;sdate,-&amp;amp;i)) ;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG style="font-size: 13px;"&gt;%end;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;&lt;STRONG style="font-size: 13px;"&gt;%mend exclude;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why would you call such a macro EXCLUDE?&lt;/P&gt;&lt;P&gt;Perhaps if you explain the larger task there is a much easier way to do what you want?&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 13px;"&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 13px;"&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 17:49:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21374#M3434</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-09-30T17:49:24Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21375#M3435</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%macro exclude(count);&lt;/P&gt;&lt;P&gt; %local x;&lt;/P&gt;&lt;P&gt; %do x=1 %to &amp;amp;count;&lt;/P&gt;&lt;P&gt;&amp;nbsp; e&amp;amp;x.monthago=intnx('month',edateset,-&amp;amp;x);&lt;/P&gt;&lt;P&gt; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro mexclude(count);&lt;/P&gt;&lt;P&gt; %local x;&lt;/P&gt;&lt;P&gt; %do x=1 %to &amp;amp;count;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %let e&amp;amp;x.monthago=%sysfunc(intnx(month,"&amp;amp;edateset"d,-&amp;amp;x),date9.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; %put &amp;amp;&amp;amp;e&amp;amp;x.monthago;&lt;/P&gt;&lt;P&gt; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt; input edateset yymmdd8.;&lt;/P&gt;&lt;P&gt; call symput('edateset',put(edateset,date9.));&lt;/P&gt;&lt;P&gt; %exclude(6)&lt;/P&gt;&lt;P&gt; format e: date9.;&lt;/P&gt;&lt;P&gt; put _all_;&lt;/P&gt;&lt;P&gt; cards;&lt;/P&gt;&lt;P&gt;110930&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mexclude(6)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 17:57:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21375#M3435</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-09-30T17:57:56Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21376#M3436</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is the problem how to resolve a macro variable name when you want to use another macro variable's value as part of the name?&lt;/P&gt;&lt;P&gt;If so then use extra &amp;amp;'s.&lt;/P&gt;&lt;P&gt;Try this little bit of code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let e1monthago='01AUG2011'd;&lt;/P&gt;&lt;P&gt;%let N=1;&lt;/P&gt;&lt;P&gt;%put e&amp;amp;n.monthago=&amp;amp;&amp;amp;e&amp;amp;n.monthago;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 17:58:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21376#M3436</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-09-30T17:58:44Z</dc:date>
    </item>
    <item>
      <title>Re: Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21377#M3437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm sorry, but are you trying to create six macro variables or six data step variables?&amp;nbsp; And where does &lt;STRONG&gt;edateset&lt;/STRONG&gt; come from?&amp;nbsp; Is it a variable in some data set?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If &lt;STRONG&gt;edateset &lt;/STRONG&gt;comes from a SAS data set and you want macro variables, change your macro to use call symput (not %let):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro Mexclude(count);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput("e&amp;amp;x.monthago",intnx('month',edateset,-&amp;amp;x.)); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%mend Mexclude;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note you must run this inside a data step.&amp;nbsp; Your original macro will create six SAS variables; the "new" macro will create six macro variables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %exclude(6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %Mexclude(6);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also note that the macros will run for each observation in your data set "have"; new SAS variables will be created for each observation, but only the six macro variables will exist at the end.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 18:04:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21377#M3437</guid>
      <dc:creator>BobD</dc:creator>
      <dc:date>2011-09-30T18:04:45Z</dc:date>
    </item>
    <item>
      <title>Re: Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21378#M3438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robby,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since everyone appears to be equally confused I have to ask: are you ONLY trying to accomplish something like the following?:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format edateset date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input edateset date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;9JAN2005&lt;/P&gt;&lt;P&gt;15APR2010&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array monthsago(6);&lt;/P&gt;&lt;P&gt;&amp;nbsp; format monthsago: date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to 6;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; monthsago(i)=intnx('month',edateset,-i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 18:53:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21378#M3438</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-09-30T18:53:24Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21379#M3439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art,&lt;/P&gt;&lt;P&gt;Basically yes - but I need them in local (or global) macro variables (instead of a table) so I can plug them into SQL where statements many places down the line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was looking for:&lt;/P&gt;&lt;P&gt;macro variable named &amp;amp;e1monthago that resolves to sas date 18840.&lt;/P&gt;&lt;P&gt;macro variable named &amp;amp;e2monthago that resolves to sas date 18809.&lt;/P&gt;&lt;P&gt;macro variable named &amp;amp;e3monthago that resolves to sas date 18778.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can easily make the following but was trying to do in a loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%LET&amp;nbsp; edateset=18871;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; e1monthago = intnx('month',edateset,-1); &lt;BR /&gt;&amp;nbsp;&amp;nbsp; call symput('e1monthago',e1monthago);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; e1dateago=put(e1monthago, mmddyy10.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; call symput('e1dateago',e1dateago);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; e2monthago = intnx('month',edateset,-2); &lt;BR /&gt;&amp;nbsp;&amp;nbsp; call symput('e2monthago',e2monthago);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; e2dateago=put(e2monthago, mmddyy10.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; call symput('e2dateago',e2dateago);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ...6 times...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008080; font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008080; font-size: 10pt; font-family: Courier New;"&gt;﻿&lt;/SPAN&gt;Thanks four your help - pretty much bagged it since the effort is more time than I can afford.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;﻿&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;﻿&lt;/SPAN&gt;Robby&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; font-family: Courier New;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 19:10:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21379#M3439</guid>
      <dc:creator>robby_beum</dc:creator>
      <dc:date>2011-09-30T19:10:04Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21380#M3440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt; input edateset yymmdd8.;&lt;/P&gt;&lt;P&gt; call symput('edateset',put(edateset,date9.));&lt;/P&gt;&lt;P&gt; do i=1 to 6;&lt;/P&gt;&lt;P&gt;&amp;nbsp; call symput('e' || strip(i) || 'monthago',put(intnx('month',edateset,-i),date9.));&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; cards;&lt;/P&gt;&lt;P&gt;110930&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put &amp;amp;edateset &amp;amp;e1monthago &amp;amp;e2monthago &amp;amp;e3monthago &amp;amp;e4monthago &amp;amp;e5monthago &amp;amp;e6monthago;&lt;/P&gt;&lt;P&gt;30SEP2011 01AUG2011 01JUL2011 01JUN2011 01MAY2011 01APR2011 01MAR2011&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 19:25:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21380#M3440</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-09-30T19:25:36Z</dc:date>
    </item>
    <item>
      <title>Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21381#M3441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, if &lt;STRONG&gt;edateset &lt;/STRONG&gt;is a macro variable, do this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let edateset=18871;&lt;BR /&gt;%macro exclude(count);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %global e&amp;amp;x.monthago;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let e&amp;amp;x.monthago = %sysfunc(intnx(month,&amp;amp;edateset,-&amp;amp;x.));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;%mend exclude;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%exclude(6);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put e1monthago=&amp;amp;e1monthago;&lt;BR /&gt;%put e2monthago=&amp;amp;e2monthago;&lt;BR /&gt;%put e3monthago=&amp;amp;e3monthago;&lt;BR /&gt;%put e4monthago=&amp;amp;e4monthago;&lt;BR /&gt;%put e5monthago=&amp;amp;e5monthago;&lt;BR /&gt;%put e6monthago=&amp;amp;e6monthago;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2011 20:03:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21381#M3441</guid>
      <dc:creator>BobD</dc:creator>
      <dc:date>2011-09-30T20:03:19Z</dc:date>
    </item>
    <item>
      <title>Re: Macro Name Resolution - ERROR 180-322</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21382#M3442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Robby,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some usefull answers provided, here is something alse as well:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*You could use the actual date;&lt;/P&gt;&lt;P&gt;%let edateset=%sysfunc(putn("01Sep2011"d, 8.));&lt;/P&gt;&lt;P&gt;*Or the SAS data you provided;&lt;/P&gt;&lt;P&gt;%let edateset=18871;&lt;/P&gt;&lt;P&gt;%macro exclude(count);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let e&amp;amp;x.monthago = %sysfunc(intnx(month,&amp;amp;edateset.,-&amp;amp;x.));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *you need to use &amp;amp;&amp;amp; to resolve the macro name after the numeric has been resolved.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *the macro processor will first resolve all values with a single &amp;amp;, e.g. &amp;amp;x. and double &amp;amp;'s will resove to a single &amp;amp;, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *thus the first resolution will give &amp;amp;e1monthago. This is the actual variable name that you are looking for finally; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;&amp;amp;e&amp;amp;x.monthago;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%mend exclude;&lt;/P&gt;&lt;P&gt; %exclude(6);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; *COMPLETE SOLUTION;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; *For the where clause you could use;&lt;/P&gt;&lt;P&gt;%macro exclude(count);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %local x;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *this will initialise the vairable and global it, but we want to clear it in case we run it more than once;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %global whrein;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *clear the variable;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let whrein=;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do x=1 %to &amp;amp;count.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let e&amp;amp;x.monthago = %sysfunc(intnx(month,&amp;amp;edateset.,-&amp;amp;x.));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *add the assigned variable to the string;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let whrein=&amp;amp;whrein &amp;amp;&amp;amp;e&amp;amp;x.monthago;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *add a comma for the where clause if it is not the final value;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %eval(&amp;amp;x. ne &amp;amp;count.) %then %let whrein=&amp;amp;whrein,;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *you can also add the baarckets here, or later in the where clause;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let whrein=(&amp;amp;whrein.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put &amp;amp;whrein.;&lt;/P&gt;&lt;P&gt;%mend exclude;&lt;/P&gt;&lt;P&gt; %exclude(6);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Jul 2013 06:05:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-Name-Resolution-ERROR-180-322/m-p/21382#M3442</guid>
      <dc:creator>Koos</dc:creator>
      <dc:date>2013-07-15T06:05:45Z</dc:date>
    </item>
  </channel>
</rss>

