全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4387 2
2018-01-14
悬赏 5 个论坛币 未解决
求助利用SAS软件将一个excel表拆分成多个。
有一个excel表含有N个人的信息,现在想把每个人的信息单独形成一个新的excel表,请问该如何实现,谢谢!
例如:
id      age    work    .....
1       ..       ...
2      ..        ...
...
1000  ..      ...
...
N       ..     ....
根据id拆分成N个单独的表
sheet1
id      age    work    .....
1       ..       ...
sheet2
id      age    work    .....
2       ..       ...
...
sheetN
id      age    work    .....
N       ..       ...

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-1-15 09:37:58
/*用于专门导出excel的宏*/
%macro exp(id,out_name,n);
data        tmp;
        set &in_data.;
  where id='&id.';   /*id是字符串类型*/
  where id=%sysevalf(&id.);/*id是数值类型*/
run;
/*按你的意思是每个客户信息生成单独的excel,但是后面的
sheet名字又不一样,所以,两种都帮你处理好了
1、如果是新的excel,则xls.sheet&n.改为xls.sheet
2、如果是单独的excel,不同的sheet,则&out_name._&n..xlsx 改为&out_name..xlsx
*/
        libname xls excel "C:\excel\&out_name._&n..xlsx";
                data        xls.sheet&n.(dblabel=yes);
                        set tmp;
                run;
        libname xls;
%mend exp;
/*处理excel导入*/
proc import datafile=""
                 out=out_d
                dbms=excel replace;
                getnames=yes;
                sheet='';
run;

/*对导入的数据集 out_d ,按照客户号,或者id进行拆分*/
/*把单独的id号/客户号拿出来*/
proc sort data=out_d out=out_d_01 nodupkey;by id;run;

/*进行循环生成excel*/
data        _null_;
        set out_d_01;
   call execute('%exp('||id||','||"out_names"||','||_n_||')');
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-3-7 16:18:50
提示“物理名无效”
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群