楼主: 杨小米123
1267 4

[问答] 求助~~~球高手进 [推广有奖]

  • 0关注
  • 0粉丝

初中生

33%

还不是VIP/贵宾

-

威望
0
论坛币
17 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
153 点
帖子
4
精华
0
在线时间
18 小时
注册时间
2013-4-6
最后登录
2018-5-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
本人菜鸟,求教大侠,如何将100万的数据按照5000均分生成200个excel表格~~谢谢
二维码

扫码加我 拉你入群

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

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

关键词:excel表格 Excel表 EXCEL exce xcel excel表格 如何

沙发
zhengbo8 发表于 2013-4-6 17:59:10 |只看作者 |坛友微信交流群
数据文件,附件。

使用道具

藤椅
bobguy 发表于 2013-4-7 07:08:10 |只看作者 |坛友微信交流群
Here is a simple example that has all functions you need for your problem.



libname S EXCEL 'c:\temp\splited.xlsx';

data tmp;
   do i=1 to 1000;
      x=ranuni(123);
          output;
        end;
run;

%macro dsn(numdsn,numobs, excelfile='c:\temp\splited.xlsx', dsnin=tmp);

   libname s EXCEL &excelfile;
   proc datasets lib=S kill; run;  quit;

   data
   %do i=1 %to &numdsn;
       s.sheet&i
   %end;
   ;
   set tmp;
   %do i=1 %to &numdsn;
       %if &i=1 %then if _n_<=&i*&numobs then output s.sheet&i%str(;);
           %else %if &i<=%eval(&numdsn-1) %then
               else if _n_<=&i*&numobs then output s.sheet&i%str(;);
           %else   else output s.sheet&i%str(;);
   %end;
   run;
%mend;
options mprint;
%dsn(10,100, excelfile='c:\temp\splited.xlsx', dsnin=tmp);

libname S ;

使用道具

一个观测不要求随机的例子,不过只适合于观测不多的情况。
  1. %macro getdata(have);
  2. %do i=1 %to 100 %by 10;
  3.         data want_&i;
  4.                 set &have(firstobs=&i obs=%eval(&i+2));
  5.         run;
  6.         proc export data=want_&i outfile='d:want_&i..xls';
  7.         run;
  8. %end;
  9. %mend getdata;
  10. %getdata(indsn)
复制代码


欢迎加入SAS群:144839730-蜗牛

使用道具

报纸
yongyitian 发表于 2013-4-7 22:39:56 |只看作者 |坛友微信交流群
这段程序是将数据集输出到.xml 文件, 用excel打开后可存成excel文件。

不过将一百万条数据存在一个workbook的200个表格中,可能不太好用.

可以选择不同的观测值输出到不同的workbook中。

data OneMillion;
   if _n_ = 1 then do;
      do i = 1 to 1000000;
        a = round(ranuni(1234)*100, 0.01);
        output;
      end;
   end;
run;
%macro mymacro(startobs=, endobs=, byvalue=, dsn=, path=, ExcelBook=);
ods _all_ close;
ods tagsets.ExcelXP path=&path
                               File="&ExcelBook..xml"
                               style=Printer;
    %do i = &startobs %to &endobs %by &byvalue;
  %let j = %eval(&i + &byvalue-1);
data data&i;
      set &dsn (firstobs=&i obs=&j);
run;
    proc print data=data&i noobs; run; quit;
%end;
ods tagsets.ExcelXP close;
%mend mymacro;
%mymacro(startobs=1, endobs=100, byvalue=25, dsn=OneMillion, path="F:\MySAS\SASData", excelBook=MyexcelB);

使用道具

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

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

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

GMT+8, 2024-4-28 22:34