SAS : Importing multiple excel files in a single dataset

Live Online Training : SAS Programming with 50+ Case Studies

- Explain Programming Concepts in Simple English
- Live Projects
- Scenario Based Questions
- Job Placement Assistance
- Get 20% off till July 14, 2017

Suppose you want to import multiple excel workbooks with the same variable names from a folder into a library and then merge data from all the data sets to a single data set (table).

%macro MultImp(dir=,out=);

%let rc=%str(%'dir %")&dir.%str(\%" /A-D/B/ON%');
filename myfiles pipe %unquote(&rc);

data list;
length fname $256.;
infile myfiles truncover;
input myfiles $100.;

fname=quote(upcase(cats("&dir",'\',myfiles)));
out="&out";
drop myfiles;
call execute('
  proc import dbms=xlsx out= _test
            datafile= '||fname||' replace ;
  run;
  proc append data=_test base='||out||' force; run;
  proc delete data=_test; run;
');
run;
filename myfiles clear;

%mend;

%MultImp(dir=C:\Users\Deepanshu Bhalla\Documents\test,out=merged);

How to use :

1. Paste the above program into SAS program editor window
2. Change the path mentioned in the last line of program (highlighted below in red)

 %MultImp(dir=C:\Users\Deepanshu Bhalla\Documents\test,out=merged);

3. Run the program

SAS Tutorials : 100 Free SAS Tutorials

About Author:

Deepanshu founded ListenData with a simple objective - Make analytics easy to understand and follow. He has close to 7 years of experience in data science and predictive modeling. During his tenure, he has worked with global clients in various domains like retail and commercial banking, Telecom, HR and Automotive.


While I love having friends who agree, I only learn from those who don't.

Let's Get Connected: Email | LinkedIn

Get Free Email Updates :
*Please confirm your email address by clicking on the link sent to your Email*

Related Posts:

8 Responses to "SAS : Importing multiple excel files in a single dataset"

  1. Followed as suggested above but did not get my files imported. getting below messages in log..
    WARNING: Argument 1 to function DNUM referenced by the %SYSFUNC or %QSYSFUNC macro function is out of
    range.
    NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result
    of the operations have been set to a missing value.

    ReplyDelete
    Replies
    1. Thank you for letting me know the issue. I have fixed the code. It is working fine now!

      Delete
  2. Great Work!!

    ReplyDelete
  3. Hi, Can you update a article on basic introduction to sas macros?

    ReplyDelete
  4. Please start with introduction to macros.

    ReplyDelete
  5. How can we use the code when some variables may be different (or some files have some variables that others don't have).
    Thanks

    ReplyDelete
  6. Can you update the code to only include the first 5 observations (first 5 files) in the folder and start with the second line of the excel files?

    ReplyDelete

Next → ← Prev