Hello,
data have;
infile cards dlm=',' dsd;
format group_no z6. item_name $10. company $10.;
input group_no item_name company;
cards;
020101,banana,
020101,apple,
020101,grape,
., ,Company A
020101,apple,
020101,pineapple,
., ,Company B
020102,pineapple,
020102,apple,
020102,grape,
020102,papaya,
., ,Company C
;
run;
data have2(keep=group_no item_name compid) companies(keep=company compid);
set have;
retain compid;
no1=lag(group_no);
if _N_=1 or no1=. then do;
compid+1;
end;
if group_no=. then output companies;
else output have2;
run;
data want;
merge have2 companies;
by compid;
comp1=lag(company);
if company=comp1 then company=" ";
drop compid comp1;
run;
... View more