楼主: yukai08008
1101 0

[程序分享] 输出数据集到Excel多个标签页_Andy的原创帖1 [推广有奖]

  • 2关注
  • 17粉丝

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
2176 个
通用积分
3.0600
学术水平
10 点
热心指数
7 点
信用等级
7 点
经验
5915 点
帖子
120
精华
0
在线时间
556 小时
注册时间
2012-11-28
最后登录
2022-4-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

下面是我平时用的一个宏,如果你暂时无法使用完整的SAS Platform(毕竟太复杂),又需要把SAS的数据集变成Excel文件的话,就可以用到下面说的宏。
宏1(宏名:sets)可以把一个数据集根据一个分类变量把数据分发到一个Excel的多个标签页
宏2(宏名:excel)把数据集输出到一个excel文件
使用以下宏的方法:
1 把标绿色的字换成你需要输出excel的文件夹路径
2 If你只要输出单个文件而不需要划分则使用%excel(your_set,your_filename,your_excel_label_name)
3 if你需要把一个数据集分类输出到多个标签%sets(your_set,cate=your_category_var,outf=your_excel_name)
*ps 把%excel 的filename和label两个参数的反过来试试 : )  (输出多个excel文件)
友情提示:注意生成的是excel97-2003的模板,如果要分享可以另存为xlsm格式,避免兼容性问题。




*****************************************宏1**********************************************
%macro sets(ins,cate=sales,outf=test);
proc sort data=&ins out=a1 nodupkey;
by &cate;
run;
data _null_;
if 0 then set a1 nobs=a;
call symput('obs',a);
run;


%do i=1 %to &obs;
data _null_;
set a1;
if _n_ eq &i;
call symput('cate'||left(&i),&cate );
run;
data d&i;
set &ins;
if &cate eq "&&cate&i";
run;
%excel(d&i,&outf,&&cate&i)
%end;
%mend;
***************************************宏2**************************************
宏1调用了宏2
%macro excel(in,filename,label);
proc export data=&in outfile="E:\数据结果\excel_o\&filename..xls"
dbms=excelcs label replace;
sheet="&label";
run;
%mend;

二维码

扫码加我 拉你入群

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

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

关键词:EXCEL xcel exce Andy cel excel sas 输出 数据集

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 17:25