<?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: proc transpose or data step in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226343#M40733</link>
    <description>&lt;P&gt;I was able to get the logos to go in right block the way i need however Im struggling in creating a block4adata1 &amp;nbsp;, block4data2 ... etc&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is updated code . any idea&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA trans_col;&lt;BR /&gt;ARRAY Block(24) $ 50 ;&lt;BR /&gt;do i = 1 to 24;&lt;BR /&gt;SET num_of_logos;&lt;BR /&gt;BY id Priority ;&lt;BR /&gt;IF region='P' then do;&lt;BR /&gt;i=3;&lt;BR /&gt;Block(i+N)=logo;&lt;BR /&gt;end;&lt;BR /&gt;IF region='B' then do;&lt;BR /&gt;i=6;&lt;BR /&gt;Block(i+N)=logo;&lt;BR /&gt;end;&lt;BR /&gt;if region='S' then do;&lt;BR /&gt;i=9;&lt;BR /&gt;Block(i+n)=logo;&lt;BR /&gt;end;&lt;BR /&gt;if region='T' then do;&lt;BR /&gt;i=12;&lt;BR /&gt;Block(i+n)=logo;&lt;BR /&gt;end;&lt;BR /&gt;IF last.id THEN RETURN;&lt;BR /&gt;END;&lt;BR /&gt;RUN;&lt;/P&gt;</description>
    <pubDate>Fri, 18 Sep 2015 15:53:57 GMT</pubDate>
    <dc:creator>Moe_Issa</dc:creator>
    <dc:date>2015-09-18T15:53:57Z</dc:date>
    <item>
      <title>proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/225945#M40613</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a data set ( want ) multiple record for same ID and I want to transpose the rows to columns , however few conditions needs to be met first .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First of all , Each Logo should have its own Vdata1- 5 &amp;nbsp;, also regionquantity will determind how many logos will appear for a region .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example is the&amp;nbsp;RegionQuantity =2 &amp;nbsp;then just 2 logos should be selected for that ID even if it has 3 record. ( logos)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Second , region P start from block 4 - 6&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region B start from block 7 - 9&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region S start from block 10 - 12&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region T start from block 13 - 22&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Also the %%name%%.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I used proc transpose and created the Vdata1-5 . but i dont think its efficient , also i used alot of If-then after the transpose to determin how many logos each id should get and rename statement to assigned the region 4- 6.. etc .&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Is there an easy way to do that ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; have;&lt;/P&gt;&lt;P&gt;INFILE DATALINES DLM=',';&lt;/P&gt;&lt;P&gt;input Fname $ Logo $ Region $ RegionQuantity $ VDATA1 $ VDATA2 $ VDATA3 $ VDATA4 $ Vdata5 $ Priority ID;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;Peter,hhLKOM,P,1, ,%%name%%, , , ,1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Peter,&lt;/SPAN&gt;TTT1,S,1, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Peter,&lt;/SPAN&gt;BBB2,T,2, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Peter,&lt;/SPAN&gt;HESFD,T,2, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Peter,&lt;/SPAN&gt;RWDFG,T,2, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; 5,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;John,hhLKOM1,P,1,%%name%%, , , , , 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;John,&lt;/SPAN&gt;TTT13,B,1, , , , , ,2, &amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;John,&lt;/SPAN&gt;BBB23,S,1, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;John,&lt;/SPAN&gt;HESFD12,T,2&amp;nbsp;&amp;nbsp;&amp;nbsp; , , , , , , 4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;John,&lt;/SPAN&gt;RWDFG11,T,2, , , , , , &amp;nbsp; &amp;nbsp;5,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;John,&lt;/SPAN&gt;RWDFG15,T,2&amp;nbsp;&amp;nbsp; , , , , , , 6,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;Cole,WKOM,P,1, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cole,&lt;/SPAN&gt;sss1,B,1, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cole,&lt;/SPAN&gt;BBB232,S,1, , , , , , &amp;nbsp; &amp;nbsp; &amp;nbsp; 3,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cole,&lt;/SPAN&gt;H111,T,4 , , , , , ,4,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cole,&lt;/SPAN&gt;YWQF1,T,4,%%name%%, , , , , 5,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cole,&lt;/SPAN&gt;HEHEJRN,T,4&amp;nbsp;&amp;nbsp; , , , , , , 6,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cole,&lt;/SPAN&gt;FMERETH,T,4&amp;nbsp;&amp;nbsp; , , , , , , 7,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;INFILE DATALINES DLM=',';&lt;/P&gt;&lt;P&gt;input ID BLOCK4 $ Block4Data1 $ Block4Data2 $ Block4Data3 $ Block4Data4 $ Block4Data5 $ BLOCK5 $ Block5Data1 $ Block5Data2 $ Block5Data3 $ Block5Data4 $ Block5Data5 $ BLOCK6$&lt;/P&gt;&lt;P&gt;Block6Data1 $ Block6Data2 $ Block6Data3 $ Block6Data4 $ Block6Data5 $ BLOCK7 $ Block7Data1$&amp;nbsp; Block7Data2 $ Block7Data3 $ Block7Data4 $ Block7Data5 $ BLOCK8 $ Block8Data1 $&lt;/P&gt;&lt;P&gt;Block8Data2 $ Block8Data3 $ Block8Data4 $ Block8Data5 $ BLOCK9 $ BlocK9Data1 $ Block9Data2 $ Block9Data3 $ Block9Data4 $ Block9Data5 $ BLOCK10 $ BlocK10Data1 $ Block10Data2 $&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Block10Data3 $ Block10Data4 $ Block10Data5 $ BLOCK11 $ BlocK11Data1 $ Block11Data2 $ Block11Data3 $ Block11Data4 $ Block11Data5 $ BLOCK12 $ BlocK12Data1 $ Block12Data2 $&lt;/P&gt;&lt;P&gt;Block12Data3 $ Block12Data4 $ Block12Data5 $ BLOCK13 $ BlocK13Data1 $ Block13Data2 $ Block13Data3 $ Block13Data4 $ Block13Data5 $ BLOCK14 $ BlocK14Data1 $ Block14Data2 $&lt;/P&gt;&lt;P&gt;Block14Data3 $ Block14Data4 $ Block14Data5 $ BLOCK15 $ BlocK15Data1 $ Block15Data2 $ Block15Data3 $ Block15Data4 $ Block15Data5 $ BLOCK16 $ BlocK16Data1 $ Block16Data2 $ Block16Data3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $&lt;/P&gt;&lt;P&gt;Block16Data4 $ Block16Data5 $ ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1,hhLKOM, ,Peter, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,TTT1, , , , , , , , , , , , , , , , , ,BBB2, , , , , ,HESFD&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;&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;&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;&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; &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; ,&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;&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;&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;&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;/P&gt;&lt;P&gt;2,hhLKOM1,John, , , , , , , , , , , , , , , , ,TTT13, , , , , , , , , , , , , , , , , ,BBB23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , , , , , , , , , , , , , , , , , ,HESFD12, , , , , ,RWDFG11,&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;&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;&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; &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; ,&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&amp;nbsp;&lt;/P&gt;&lt;P&gt;3,WKOM, , , , , , , , , , , , , , , , , ,sss1, , , , , , , , , , , , , , , , , ,BBB232, , , , , , , , , , , , , , , , , ,H111, , , , , ,YWQF1,Cole,&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;&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; ,HEHEJRN, , , , , ,FMERETH, , , , , ,&amp;nbsp;&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Sep 2015 15:18:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/225945#M40613</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-21T15:18:15Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226065#M40652</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I started looking at this but got stuck.&lt;/P&gt;
&lt;P&gt;First your REGIONS don't each have a unique REGIONQUANTITY:&lt;/P&gt;
&lt;P&gt;/*&lt;BR /&gt;Region RegionQuantity&lt;BR /&gt;B 1&lt;BR /&gt;P 1&lt;BR /&gt;S 1&lt;BR /&gt;T 2 &amp;lt;-- !&lt;BR /&gt;T 4 &amp;lt;-- !&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;So I did this reassignment:&lt;/P&gt;
&lt;P&gt;if region = 'T' and regionquantity = 4 then region = 'T2';&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In order to get the right number of records I did this but I have no idea how you want to select them:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data = have1; by region logo; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;* WILL SELECT THE FIRST LOGOS IN ALPHABETICAL ORDER, EG FIRST 2 LOGOS IF 2 ARE REQUIRED. HOW DO WE KNOW WHICH LOGOS TO KEEP? *; &lt;BR /&gt;data have2;&lt;BR /&gt; set have1;&lt;BR /&gt; by region logo;&lt;BR /&gt; retain count;&lt;BR /&gt; if first.region then count = 1;&lt;BR /&gt; else count = count + 1;&lt;BR /&gt; if count le regionquantity;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then I didn't understand about how you want to get them into the blocks...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So, anyway, this may help you get on the right path but it's not a complete solution. Good luck.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;m.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Sep 2015 14:52:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226065#M40652</guid>
      <dc:creator>evp000</dc:creator>
      <dc:date>2015-09-17T14:52:13Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226092#M40660</link>
      <description>&lt;P&gt;Thanks for your help , Sorry I think i wasn't clear enough but here is what im trying achive .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for each ID region quantity should be unique by region ( like T for first ID is 2 for all region=T records). so regionquantity means just to logos should be selected for that ID from region T based on the priority .&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;regarding the Block I want to transpose the rows selected to columns and i named it block . and each logo should have 5 vdata .for example first ID has 1 logo in region = P , and P region start from number 4 ( logo4 = block4).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note:&amp;nbsp;&lt;/P&gt;&lt;P&gt;region P start from block 4 - 6&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region B start from block 7 - 9&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region S start from block 10 - 12&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region T start from block 13 - 22&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;. and then create 5 columns for that block block4data1 &amp;nbsp;block4data2 .... etc . and replace the %%name%% with the value from column name .&lt;/P&gt;</description>
      <pubDate>Thu, 17 Sep 2015 19:19:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226092#M40660</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-17T19:19:34Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226146#M40670</link>
      <description>&lt;P&gt;What role do the variable RegionQuantity and Priority Play? Are all of the VDATA variables in your actual data character?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It appears that PRIORITY controls the order of the data within the block. Is that the case?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Sep 2015 21:43:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226146#M40670</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-09-17T21:43:42Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226151#M40672</link>
      <description>&lt;P&gt;&lt;SPAN&gt;RegionQuantity will determine how many logos the ID should get , example is the same ID have 3 logos that has T as Region ( 3 rows ) and&amp;nbsp;RegionQuantity = 2 that means this ID will just receive 2 records from region T based on priority .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;hope this help .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Sep 2015 22:16:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226151#M40672</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-17T22:16:46Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226208#M40693</link>
      <description>The simplest way is using proc means OR althernative way is MERGE skill.&lt;PRE&gt;data have;
INFILE DATALINES DLM=',';
input  Logo $ Region $ RegionQuantity $ VDATA1 $ VDATA2 $ VDATA3 $ VDATA4 $ Vdata5 $ Priority ID;
datalines;
hhLKOM,P,1, ,%%name%%, , , ,1,         1
TTT1,S,1, , , , , ,           2,         1
BBB2,T,2, , , , , ,           3,         1
HESFD,T,2, , , , , ,        4,         1
RWDFG,T,2, , , , , ,       5,         1
hhLKOM1,P,1,%%name%%, , , , , 1,      2
TTT13,B,1, , , , , ,2,       2
BBB23,S,1, , , , , ,         3,         2
HESFD12,T,2    , , , , , , 4,         2
RWDFG11,T,2, , , , , ,    5,         2
RWDFG15,T,2   , , , , , , 6,         2
WKOM,P,1, , , , , ,         1,         3
sss1,B,1, , , , , ,            2,         3
BBB232,S,1, , , , , ,       3,         3
H111,T,4 , , , , , ,4,        3
YWQF1,T,4,%%name%%, , , , , 5,         3
HEHEJRN,T,4   , , , , , , 6,         3
FMERETH,T,4   , , , , , , 7,         3
;
run;

proc sql;
 select max(n) into : n
  from (select count(*) as n from have group by id);
quit;

proc summary data=have;
by id;
output out=want idgroup(out[&amp;amp;n] (Logo  Region  RegionQuantity  VDATA1  VDATA2  VDATA3  VDATA4  Vdata5 Priority )=);
run;

&lt;/PRE&gt;</description>
      <pubDate>Fri, 18 Sep 2015 08:15:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226208#M40693</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2015-09-18T08:15:46Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226256#M40720</link>
      <description>&lt;P&gt;thanks xia ,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is what i did , however in last step i dont get the logos in the right block ,&lt;/P&gt;&lt;P&gt;region P start from block 4 - 6&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region B start from block 7 - 9&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region S start from block 10 - 12&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;region T start from block 13 - 22&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;also , i didnt create block&amp;amp;i.data1 &amp;nbsp;&lt;SPAN&gt;block&amp;amp;i.data2 &amp;nbsp;block&amp;amp;i.data3 &amp;nbsp;block&amp;amp;i.data4&amp;nbsp;block&amp;amp;i.data5 &amp;nbsp;for each block . each row is a logo before transposed and each logo has 5 vdata . so after the logos gets transposed i need to create 5 vdata with value of %%name%% if needed.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sort data=have ; by id Region; run;&lt;/P&gt;&lt;P&gt;/* this step to determine who how many logos for each ID */&lt;BR /&gt;data num_of_logos ; set have ;&lt;BR /&gt;by id region;&lt;BR /&gt;N+1;&lt;BR /&gt;If first.region then N=1;&lt;BR /&gt;if n &amp;lt;= put(regionquantity,1.)&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=&lt;SPAN&gt;num_of_logos &lt;/SPAN&gt;; by id Priority;run;&lt;/P&gt;&lt;P&gt;/* transpose the rows to columns starting from block4 */&lt;BR /&gt;DATA trans_col;&lt;BR /&gt;ARRAY Block(24) $ 50 ;&lt;BR /&gt;do i = 1 to 24;&lt;BR /&gt;SET num_of_logos;&lt;BR /&gt;BY id Priority ;&lt;BR /&gt;IF region='P' then i=4;&lt;BR /&gt;Block(i)=logo;&lt;/P&gt;&lt;P&gt;IF region='B' then i=7;&lt;BR /&gt;Block(i)=logo;&lt;/P&gt;&lt;P&gt;if region='S' then i=10;&lt;BR /&gt;Block(i)=logo;&lt;/P&gt;&lt;P&gt;if region='T' then i=13;&lt;BR /&gt;Block(i)=logo;&lt;BR /&gt;IF last.id THEN RETURN;&lt;BR /&gt;&lt;BR /&gt;END;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Sep 2015 14:26:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226256#M40720</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-18T14:26:24Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226343#M40733</link>
      <description>&lt;P&gt;I was able to get the logos to go in right block the way i need however Im struggling in creating a block4adata1 &amp;nbsp;, block4data2 ... etc&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is updated code . any idea&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA trans_col;&lt;BR /&gt;ARRAY Block(24) $ 50 ;&lt;BR /&gt;do i = 1 to 24;&lt;BR /&gt;SET num_of_logos;&lt;BR /&gt;BY id Priority ;&lt;BR /&gt;IF region='P' then do;&lt;BR /&gt;i=3;&lt;BR /&gt;Block(i+N)=logo;&lt;BR /&gt;end;&lt;BR /&gt;IF region='B' then do;&lt;BR /&gt;i=6;&lt;BR /&gt;Block(i+N)=logo;&lt;BR /&gt;end;&lt;BR /&gt;if region='S' then do;&lt;BR /&gt;i=9;&lt;BR /&gt;Block(i+n)=logo;&lt;BR /&gt;end;&lt;BR /&gt;if region='T' then do;&lt;BR /&gt;i=12;&lt;BR /&gt;Block(i+n)=logo;&lt;BR /&gt;end;&lt;BR /&gt;IF last.id THEN RETURN;&lt;BR /&gt;END;&lt;BR /&gt;RUN;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Sep 2015 15:53:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226343#M40733</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-18T15:53:57Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226367#M40740</link>
      <description>&lt;P&gt;Nevermind solved it &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Sep 2015 17:52:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226367#M40740</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-18T17:52:52Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226392#M40744</link>
      <description>&lt;P&gt;Please share your solution so others with a similar question can see the solution.&lt;/P&gt;</description>
      <pubDate>Fri, 18 Sep 2015 20:39:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226392#M40744</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-09-18T20:39:29Z</dc:date>
    </item>
    <item>
      <title>Re: proc transpose or data step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226579#M40787</link>
      <description>&lt;P&gt;here is what i did&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sort data=have ; by id Region; run;&lt;/P&gt;&lt;P&gt;/* this step to determine who how many logos for each ID */&lt;BR /&gt;data num_of_logos ; set have ;&lt;BR /&gt;by id region;&lt;BR /&gt;N+1;&lt;BR /&gt;If first.region then N=1;&lt;BR /&gt;if n &amp;lt;= put(regionquantity,1.)&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=num_of_logos ; by id Priority;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* transpose the rows to columns starting from block4 */&lt;BR /&gt;DATA trans_col;&lt;BR /&gt;ARRAY Block(24) $ 50 ;&lt;BR /&gt;do i = 1 to 24;&lt;BR /&gt;SET num_of_logos;&lt;BR /&gt;BY id Priority ;&lt;BR /&gt;IF region='P' then do;&lt;BR /&gt;i=3;&lt;BR /&gt;Block(i+N)=logo;&lt;BR /&gt;end;&lt;BR /&gt;IF region='B' then do;&lt;BR /&gt;i=6;&lt;BR /&gt;Block(i+N)=logo;&lt;BR /&gt;end;&lt;BR /&gt;if region='S' then do;&lt;BR /&gt;i=9;&lt;BR /&gt;Block(i+n)=logo;&lt;BR /&gt;end;&lt;BR /&gt;if region='T' then do;&lt;BR /&gt;i=12;&lt;BR /&gt;Block(i+n)=logo;&lt;BR /&gt;end;&lt;BR /&gt;IF last.id THEN RETURN;&lt;BR /&gt;END;&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;proc sort data=have out=drivertable nodupkey; by logo region priority ;run;&lt;/P&gt;&lt;P&gt;%MACRO FORMATING;&lt;BR /&gt;data forformat;&lt;BR /&gt;set drivertable;&lt;/P&gt;&lt;P&gt;array vars $ vdata1-vdata5;&lt;BR /&gt;do over vars;&lt;BR /&gt;if vars ='%%name%%' then vars=strip(Fname);&lt;BR /&gt;run;&lt;BR /&gt;%MEND FORMATING;&lt;/P&gt;&lt;P&gt;%formating;&lt;/P&gt;&lt;P&gt;%MACRO FORMATS;&lt;BR /&gt;%do j = 1 %to 5;&lt;BR /&gt;data Block&amp;amp;j (keep=fmtname start label type);&lt;BR /&gt;set forformat ;&lt;BR /&gt;retain fmtname "$vdata&amp;amp;j._" type 'c';&lt;BR /&gt;rename logo=start vdata&amp;amp;j=label;&lt;BR /&gt;run;&lt;BR /&gt;proc format library=work cntlin=block&amp;amp;j;run;&lt;BR /&gt;%end;&lt;BR /&gt;%MEND FORMATS;&lt;BR /&gt;%formats;&lt;/P&gt;&lt;P&gt;%MACRO VDATA;&lt;BR /&gt;data vdata;&lt;BR /&gt;set trans_col;&lt;BR /&gt;/* length block4data1 $100. block4data2 $100. block4data3 $100. block4data4 $100. block4data5 $100. ;*/&lt;BR /&gt;%do i = 1 %to 24; /*message priority */&lt;BR /&gt;%do j = 1 %to 5;&lt;BR /&gt;Length Block&amp;amp;i.data&amp;amp;j $100.;&lt;BR /&gt;Block&amp;amp;i.data&amp;amp;j=put(Block&amp;amp;i,$vdata&amp;amp;j._.);&lt;BR /&gt;%end;&lt;BR /&gt;%end;&lt;BR /&gt;drop i n Priority Region RegionQuantity n vdata1 vdata2 vdata3 vdata4 Vdata5 ;&lt;BR /&gt;run;&lt;BR /&gt;%MEND VDATA;&lt;/P&gt;&lt;P&gt;%vdata;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Sep 2015 15:19:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-transpose-or-data-step/m-p/226579#M40787</guid>
      <dc:creator>Moe_Issa</dc:creator>
      <dc:date>2015-09-21T15:19:38Z</dc:date>
    </item>
  </channel>
</rss>

