<?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: re: stack columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328462#M73338</link>
    <description>&lt;P&gt;Try to avoid thinking, this is hard, must use macro. &amp;nbsp;Macro does&amp;nbsp;&lt;STRONG&gt;nothingb&amp;nbsp;&lt;/STRONG&gt;but generate code. &amp;nbsp;Also as pointed out before&amp;nbsp;&lt;STRONG&gt;post test data in the form of a datastep&lt;/STRONG&gt;. &amp;nbsp;We are now guessing your data structure.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now in your given test data, I am assuming there is an underscore:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  array vals{4} _201:;
  do i=1 to 4;
    fiscalyear=vname(vals{i});
    clients=vals{i};
    output;
  end;
run;&lt;/PRE&gt;</description>
    <pubDate>Mon, 30 Jan 2017 15:31:03 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2017-01-30T15:31:03Z</dc:date>
    <item>
      <title>re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328450#M73334</link>
      <description>&lt;P&gt;Hi....I am trying to convert a dataset by stacking the columns which represent different fiscal years into one column. I was thinking of using a macro as the last fiscal year will change and not always known. The fiscal year variables are character. Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have:&lt;/P&gt;
&lt;TABLE width="336"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="140"&gt;Classification&lt;/TD&gt;
&lt;TD width="49"&gt;201213&lt;/TD&gt;
&lt;TD width="49"&gt;201314&lt;/TD&gt;
&lt;TD width="49"&gt;201415&lt;/TD&gt;
&lt;TD width="49"&gt;201516&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0 - 1000&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;6,881&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;6,436&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;7,495&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;6,334&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1001 - 2000&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;740&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;772&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;810&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;740&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2001 - 3000&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;850&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;812&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;819&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;744&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3001 - 4000&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;990&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;972&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;902&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;892&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4001 - 5000&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;980&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;995&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;951&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;940&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want:&lt;/P&gt;
&lt;TABLE width="217"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="89"&gt;Classification&lt;/TD&gt;
&lt;TD width="64"&gt;FiscalYear&lt;/TD&gt;
&lt;TD width="64"&gt;Clients&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0 - 1000&lt;/TD&gt;
&lt;TD&gt;201213&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;6,881&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0 - 1000&lt;/TD&gt;
&lt;TD&gt;201314&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;6,436&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0 - 1000&lt;/TD&gt;
&lt;TD&gt;201415&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;7,495&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0 - 1000&lt;/TD&gt;
&lt;TD&gt;201516&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;6,334&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1001 - 2000&lt;/TD&gt;
&lt;TD&gt;201213&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;740&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1001 - 2000&lt;/TD&gt;
&lt;TD&gt;201314&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;772&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1001 - 2000&lt;/TD&gt;
&lt;TD&gt;201415&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;810&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1001 - 2000&lt;/TD&gt;
&lt;TD&gt;201516&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;740&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2001 - 3000&lt;/TD&gt;
&lt;TD&gt;201213&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;850&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2001 - 3000&lt;/TD&gt;
&lt;TD&gt;201314&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;812&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2001 - 3000&lt;/TD&gt;
&lt;TD&gt;201415&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;819&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2001 - 3000&lt;/TD&gt;
&lt;TD&gt;201516&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;744&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3001 - 4000&lt;/TD&gt;
&lt;TD&gt;201213&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;990&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3001 - 4000&lt;/TD&gt;
&lt;TD&gt;201314&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;972&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3001 - 4000&lt;/TD&gt;
&lt;TD&gt;201415&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;902&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3001 - 4000&lt;/TD&gt;
&lt;TD&gt;201516&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;892&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:04:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328450#M73334</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2017-01-30T15:04:19Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328452#M73336</link>
      <description>&lt;P&gt;This can absolutely be done without macros, depending on these questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First, what are the actual variable names in your data set?&amp;nbsp; Unless you have taken special measures, SAS would not normally use variable names that begin with a number.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Second, are there any other character variables in your incoming data, in addition to the ones you have shown here?&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:10:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328452#M73336</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-01-30T15:10:11Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328462#M73338</link>
      <description>&lt;P&gt;Try to avoid thinking, this is hard, must use macro. &amp;nbsp;Macro does&amp;nbsp;&lt;STRONG&gt;nothingb&amp;nbsp;&lt;/STRONG&gt;but generate code. &amp;nbsp;Also as pointed out before&amp;nbsp;&lt;STRONG&gt;post test data in the form of a datastep&lt;/STRONG&gt;. &amp;nbsp;We are now guessing your data structure.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now in your given test data, I am assuming there is an underscore:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  array vals{4} _201:;
  do i=1 to 4;
    fiscalyear=vname(vals{i});
    clients=vals{i};
    output;
  end;
run;&lt;/PRE&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:31:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328462#M73338</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-01-30T15:31:03Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328465#M73339</link>
      <description>&lt;P&gt;Hi Astounding,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;No there are no other character variables in the dataset and only include the classification and the different fiscal year data. Below is thew code that retrieves the data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;DATA&lt;/STRONG&gt; WORK.Clients_Data;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; LENGTH&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Classification'n $ &lt;STRONG&gt;15&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201213'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ &lt;STRONG&gt;8&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201314'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ &lt;STRONG&gt;8&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201415'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ &lt;STRONG&gt;8&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201516'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ &lt;STRONG&gt;8&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; FORMAT&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Classification'n $CHAR15.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201213'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201314'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201415'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201516'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; INFORMAT&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Classification'n $CHAR15.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201213'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201314'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201415'n &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201516'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CHAR8.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; INFILE 'C:\Users\AppData\Local\Temp\SEG7624\Clients Data-6dcfb50cc4494588883d694debb90b76.txt'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LRECL=&lt;STRONG&gt;69&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENCODING="WLATIN1"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TERMSTR=CRLF&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DLM='7F'x&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MISSOVER&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DSD ;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; INPUT&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Classification'n : $CHAR15.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201213'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201314'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201415'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $CHAR8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '201516'n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : $CHAR8.;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:33:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328465#M73339</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2017-01-30T15:33:51Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328469#M73340</link>
      <description>&lt;P&gt;I was thinking of something like RW9's solution, but without knowledge of the variable names.&amp;nbsp; For example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;if 5=4 then set have (drop=classification);&lt;/P&gt;
&lt;P&gt;array years {*} _character_;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;do _n_=1 to dim(years);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; FiscalYear = vname(years{_n_});&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Clients = years{_n_};&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;keep Classification FiscalYear Clients;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:38:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328469#M73340</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-01-30T15:38:55Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328476#M73341</link>
      <description>&lt;P&gt;Hi Astounding......it worked perfectly.....Thanks....&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:50:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328476#M73341</guid>
      <dc:creator>twildone</dc:creator>
      <dc:date>2017-01-30T15:50:18Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328480#M73342</link>
      <description>&lt;P&gt;Some more questions:&lt;/P&gt;
&lt;P&gt;- &amp;nbsp;does piscal year&amp;nbsp;&lt;STRONG&gt;201213&lt;/STRONG&gt; means 2012-2013 ?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- how many colums of piscal-years do you have ? (there are 4 columns in test data)&lt;/P&gt;
&lt;P&gt;- assuming your origin is excel then colomn names are probably col1, col2, col3 ...etc/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;assuming positive answer then:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
 input classification $12.
       col1-col4;
datalines;
0-1000      6881 6436 7495 6334
1001 - 2000 740 772 810 740
2001 - 3000 850 812 819 744
; run;
  
%let max_col = 4;
%let year_start = 2012;

%macro labels;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%let year = &amp;amp;year_start;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%do i=1 %to &amp;amp;max_col;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%let next_year = %eval(&amp;amp;year +1);
               %global lbl&amp;amp;i;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%let lbl&amp;amp;i = &amp;amp;year.%substr(&amp;amp;next_year,3,2);
               %let year = &amp;amp;next_year; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %end;
%mend labels;
%labels;

data want;
 set have;
     array colx col1-col&amp;amp;max_col;
     
     do i=1 to &amp;amp;max_col;
        FiscalYear = symget(compress('lbl'||left(i)));
        Clients = colx(i);
        output;
    end;
    keep Classification FiscalYear Clients;
run;

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:55:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328480#M73342</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-01-30T15:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: re: stack columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328481#M73343</link>
      <description>&lt;P&gt;Probably the most appropriate technique is proc transpose:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input Classification :$&amp;amp;11.  FY201213 :comma5.0  FY201314 :comma5.0 FY201415 :comma5.0 FY201516 :comma5.0;
datalines; 
0 - 1000  6,881  6,436  7,495  6,334 
1001 - 2000  740  772  810  740 
2001 - 3000  850  812  819  744 
3001 - 4000  990  972  902  892 
4001 - 5000  980  995  951  940 
run;
 
proc transpose data=have 
              out=want (rename=(col1=clients _name_=fiscal_year)) ;
  by classification notsorted;
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;xx&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jan 2017 15:57:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/re-stack-columns/m-p/328481#M73343</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-01-30T15:57:44Z</dc:date>
    </item>
  </channel>
</rss>

