<?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: Help in SCAN function loop in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Help-in-SCAN-function-loop/m-p/770044#M39589</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/86703"&gt;@Kalai2008&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a data look like this below,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Have:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;Data&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The above data has a delimiter&amp;nbsp;#~# in the first record, so i need to split all columns on delimiter ":~:'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Want :&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;Data&lt;/TD&gt;
&lt;TD&gt;Col1&lt;/TD&gt;
&lt;TD&gt;Col2&lt;/TD&gt;
&lt;TD&gt;Col3&lt;/TD&gt;
&lt;TD&gt;Col4&lt;/TD&gt;
&lt;TD&gt;Col5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;999&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;XXXXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;176&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;XXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;TD&gt;322&lt;/TD&gt;
&lt;TD&gt;003&lt;/TD&gt;
&lt;TD&gt;333&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;XXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;TD&gt;4163&lt;/TD&gt;
&lt;TD&gt;110&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;TD&gt;46&lt;/TD&gt;
&lt;TD&gt;507&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;TD&gt;955&lt;/TD&gt;
&lt;TD&gt;6105&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have used the below code and created the numerous columns till 15 and later i used proc transpose to data look like this,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but my issue is there are multiple records like more than 50 for id1 , id 2 etc, what i have shown is only sample of 3 .&lt;/P&gt;
&lt;P&gt;I am looking for some do loop programs that would split all columns and list everything in the data want format. Hence my current code wont work.&lt;/P&gt;
&lt;P&gt;Thank you for looking into this !!&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;data test;&lt;BR /&gt;set sample;&lt;BR /&gt;col1= tranwrd(scan(data,1,"~"),":","");&lt;BR /&gt;col2= tranwrd(scan(data,2,"~"),":","");&lt;BR /&gt;col3= tranwrd(scan(data,3,"~"),":","");&lt;BR /&gt;col4= tranwrd(scan(data,4,"~"),":","");&lt;BR /&gt;col5= tranwrd(tranwrd(scan(data,5,"~"),":",""),"#","");col6, 7 ,8 ,9...&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Do you have a text file this was created from?&lt;/P&gt;
&lt;P&gt;There are some options on reading text files that may be easier to use than to split this into that many variables that would read this into multiple records of Col1 to Col5 type.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or use TRANWRD to change the whole ":~:" to a single character like | and the "#~#" to another before attempting to use scan.&lt;/P&gt;
&lt;P&gt;This splits that long value into 5 columns, which is what I interpret as your desire, on separate rows. If that isn't the case you need to be more explicit in the description.&lt;/P&gt;
&lt;PRE&gt;data junk;
  x="265:~:999:~:265:~:PP:~:XXXX   #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX";
  x=tranwrd(x,":~:","|");
  x=tranwrd(x,"#~#","@");
  do i=1 to countw(x,'@');
    temp=scan(x,i,'@');
    col1=scan(temp,1,'|');
    col2=scan(temp,2,'|');
    col3=scan(temp,3,'|');
    col4=scan(temp,4,'|');
    col5=scan(temp,5,'|');
    output;
  end;
  drop i temp;
run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 23 Sep 2021 20:50:16 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2021-09-23T20:50:16Z</dc:date>
    <item>
      <title>Help in SCAN function loop</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Help-in-SCAN-function-loop/m-p/770032#M39586</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a data look like this below,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Have:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Data&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID1&lt;/TD&gt;&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID2&lt;/TD&gt;&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The above data has a delimiter&amp;nbsp;#~# in the first record, so i need to split all columns on delimiter ":~:'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Want :&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Data&lt;/TD&gt;&lt;TD&gt;Col1&lt;/TD&gt;&lt;TD&gt;Col2&lt;/TD&gt;&lt;TD&gt;Col3&lt;/TD&gt;&lt;TD&gt;Col4&lt;/TD&gt;&lt;TD&gt;Col5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID1&lt;/TD&gt;&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;&lt;TD&gt;265&lt;/TD&gt;&lt;TD&gt;999&lt;/TD&gt;&lt;TD&gt;265&lt;/TD&gt;&lt;TD&gt;PP&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;XXXXXXX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID1&lt;/TD&gt;&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;&lt;TD&gt;265&lt;/TD&gt;&lt;TD&gt;176&lt;/TD&gt;&lt;TD&gt;265&lt;/TD&gt;&lt;TD&gt;PP&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;XXXXX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID1&lt;/TD&gt;&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;&lt;TD&gt;322&lt;/TD&gt;&lt;TD&gt;003&lt;/TD&gt;&lt;TD&gt;333&lt;/TD&gt;&lt;TD&gt;PP&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;XXXXX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID2&lt;/TD&gt;&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;&lt;TD&gt;4163&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PP&lt;/TD&gt;&lt;TD&gt;XXX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID2&lt;/TD&gt;&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;&lt;TD&gt;46&lt;/TD&gt;&lt;TD&gt;507&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PP&lt;/TD&gt;&lt;TD&gt;XXX&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID2&lt;/TD&gt;&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;&lt;TD&gt;955&lt;/TD&gt;&lt;TD&gt;6105&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PP&lt;/TD&gt;&lt;TD&gt;XXX&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have used the below code and created the numerous columns till 15 and later i used proc transpose to data look like this,&amp;nbsp;&lt;/P&gt;&lt;P&gt;but my issue is there are multiple records like more than 50 for id1 , id 2 etc, what i have shown is only sample of 3 .&lt;/P&gt;&lt;P&gt;I am looking for some do loop programs that would split all columns and list everything in the data want format. Hence my current code wont work.&lt;/P&gt;&lt;P&gt;Thank you for looking into this !!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data test;&lt;BR /&gt;set sample;&lt;BR /&gt;col1= tranwrd(scan(data,1,"~"),":","");&lt;BR /&gt;col2= tranwrd(scan(data,2,"~"),":","");&lt;BR /&gt;col3= tranwrd(scan(data,3,"~"),":","");&lt;BR /&gt;col4= tranwrd(scan(data,4,"~"),":","");&lt;BR /&gt;col5= tranwrd(tranwrd(scan(data,5,"~"),":",""),"#","");col6, 7 ,8 ,9...&lt;/P&gt;</description>
      <pubDate>Thu, 23 Sep 2021 20:06:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Help-in-SCAN-function-loop/m-p/770032#M39586</guid>
      <dc:creator>Kalai2008</dc:creator>
      <dc:date>2021-09-23T20:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: Help in SCAN function loop</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Help-in-SCAN-function-loop/m-p/770044#M39589</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/86703"&gt;@Kalai2008&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a data look like this below,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Have:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;Data&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The above data has a delimiter&amp;nbsp;#~# in the first record, so i need to split all columns on delimiter ":~:'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Want :&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;Data&lt;/TD&gt;
&lt;TD&gt;Col1&lt;/TD&gt;
&lt;TD&gt;Col2&lt;/TD&gt;
&lt;TD&gt;Col3&lt;/TD&gt;
&lt;TD&gt;Col4&lt;/TD&gt;
&lt;TD&gt;Col5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;999&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;XXXXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;176&lt;/TD&gt;
&lt;TD&gt;265&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;XXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID1&lt;/TD&gt;
&lt;TD&gt;265:~:999:~:265:~:PP:~:XXXX&amp;nbsp;&amp;nbsp; #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX&lt;/TD&gt;
&lt;TD&gt;322&lt;/TD&gt;
&lt;TD&gt;003&lt;/TD&gt;
&lt;TD&gt;333&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;XXXXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;TD&gt;4163&lt;/TD&gt;
&lt;TD&gt;110&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;TD&gt;46&lt;/TD&gt;
&lt;TD&gt;507&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ID2&lt;/TD&gt;
&lt;TD&gt;4163:~:110:~::~:PP:~:XXX#~#46:~:507:~::~:PP:~:XXX#~#955:~:6105:~::~:PP:~:XXX&lt;/TD&gt;
&lt;TD&gt;955&lt;/TD&gt;
&lt;TD&gt;6105&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;PP&lt;/TD&gt;
&lt;TD&gt;XXX&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have used the below code and created the numerous columns till 15 and later i used proc transpose to data look like this,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but my issue is there are multiple records like more than 50 for id1 , id 2 etc, what i have shown is only sample of 3 .&lt;/P&gt;
&lt;P&gt;I am looking for some do loop programs that would split all columns and list everything in the data want format. Hence my current code wont work.&lt;/P&gt;
&lt;P&gt;Thank you for looking into this !!&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;data test;&lt;BR /&gt;set sample;&lt;BR /&gt;col1= tranwrd(scan(data,1,"~"),":","");&lt;BR /&gt;col2= tranwrd(scan(data,2,"~"),":","");&lt;BR /&gt;col3= tranwrd(scan(data,3,"~"),":","");&lt;BR /&gt;col4= tranwrd(scan(data,4,"~"),":","");&lt;BR /&gt;col5= tranwrd(tranwrd(scan(data,5,"~"),":",""),"#","");col6, 7 ,8 ,9...&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Do you have a text file this was created from?&lt;/P&gt;
&lt;P&gt;There are some options on reading text files that may be easier to use than to split this into that many variables that would read this into multiple records of Col1 to Col5 type.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or use TRANWRD to change the whole ":~:" to a single character like | and the "#~#" to another before attempting to use scan.&lt;/P&gt;
&lt;P&gt;This splits that long value into 5 columns, which is what I interpret as your desire, on separate rows. If that isn't the case you need to be more explicit in the description.&lt;/P&gt;
&lt;PRE&gt;data junk;
  x="265:~:999:~:265:~:PP:~:XXXX   #~#265:~:176:~:265:~:PP:~:XXXXX #~#322:~:003:~:333:~:PP:~:XXXXX";
  x=tranwrd(x,":~:","|");
  x=tranwrd(x,"#~#","@");
  do i=1 to countw(x,'@');
    temp=scan(x,i,'@');
    col1=scan(temp,1,'|');
    col2=scan(temp,2,'|');
    col3=scan(temp,3,'|');
    col4=scan(temp,4,'|');
    col5=scan(temp,5,'|');
    output;
  end;
  drop i temp;
run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Sep 2021 20:50:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Help-in-SCAN-function-loop/m-p/770044#M39589</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-09-23T20:50:16Z</dc:date>
    </item>
  </channel>
</rss>

