If below works for you will depend on your actual data.
I've made the assumption that all values are in percent.
data have;
input pct $;
cards;
15%
5
30
10-15%
;
data want(drop=_:);
set have;
length pct_n 8;
pct=compress(pct,' %');
_words=countw(pct,'-');
do _i=1 to _words;
pct_n=sum(pct_n,input(scan(pct,_i,'-'),best32.));
end;
pct_n=pct_n/(100*_words);
format pct_n percent10.1;
run;
... View more