OK.Be honest. It is more complicated than I imaged.
[pre]
data a(keep= id ss where=(ss is not missing));
input id s $ 3-118;
length ss $ 50;
retain ss;
i=1; _s=scan(s,1,',');
do while(not missing(_s));
if findc(_s,'-') then do;output;call missing(ss);end;
ss=catx(',',ss,_s);
i+1;
_s=scan(s,i,',');
if missing(_s) then output;
end;
call missing(ss);
datalines;
1 prg-code,main,IT-Hardware,Ins,Main,Non_IT- ,WOrk-Hardwrk,giveup,main,doit, -Nowork,ceo-cash,main,user,repair,nonit,
2 prgcode,main,IT-Hardware,Ins,Main,Non_IT- ,WOrk-Hardwrk,giveup,main,doit, -Nowork,ceo-cash,main,user,repair,non-it,
3 prg-code,main,IT-Hardware,Ins,Main,Non_IT- ,WOrk-Hardwrk,giveup,main,doit, -Nowork,ceo-cash,main,user,repair,non-it,
run;
[/pre]
Ksharp