- data a;
- set raw_data;
- if F1 ^="";
- run;
- data b(keep=_no _date);
- set a;
-
- length _no $9 _date $10;
- if _N_>1 and (mod((_N_-2),13)=0 ) then do;
-
- no=scan(F1,2,":");
- date=scan(F1,3,":");
- _no=substr(no,1,9);
- _date=substr(date,1,9);
- end;
-
- if _no ^="" and _date^="";
- run;
- data c(keep=var1-var10);
- set a;
- if F2^="结果" and F2^="" then do;
- array _var(*) $6 var1-var10;
- x=mod((_N_-4),13)+1;
- _var(x)=F2;
- output;
- end;
- if F2^="结果" and F2^="";
- run;
- %macro getname;
- %do i=1 %to 10;
- c&i.(keep=var&i.)
- %end;
- %mend;
- data %getname;
- set c;
- run;
- data _NULL_;
-
- length code $1000;
- array _name(14) $50;
- do i=1 to 10;
- _name(i)=cat("data c",strip(i),";set c",strip(i),";if var",strip(i),"^='';run;");
- end;
- code=cat(of _name:);
- call execute(code);
- run;
- data result;
- merge b %getname;
- run;
- proc datasets lib=work;
- delete c: a b;
- quit;
2、将数据集导出到Excel2003,邮件合并。详见附件。
3、共计296份检验单。
完美解决,睡觉去了。