Amadeus cookies policy - you'll see this message only once.

Amadeus use cookies on this website. They help us to know a little bit about you and how you use our website, which improves the browsing experience and marketing - both for you and for others. They are stored locally on your computer or mobile device. To accept cookies, continue browsing as normal. Or, go to the privacy policy for more information.

Advanced SAS Macro

Course Length - 1 Day

After one day of instructor led tuition attendees will be able to:

  • Apply best practices when designing and programming SAS macros;
  • Understand when to use advanced DATA step functions to work with SAS Macro Language;
  • Ensure macros developed are resilient and robust;
  • Use advanced SAS file input and output functions with SAS Macro Language.

Advanced SAS Macro Public Course Dates

Due to Covid-19 all Amadeus training will be delivered via live web classes. Our live Web classes are as interactive as our classroom training, there are also some benefits - no travelling time and costs!


Programmers who wish to extend their knowledge of the SAS Macro Language. The course focuses specifically on applying best practices when developing macros, advanced DATA step techniques and the use of SAS file I/O functions.


This course is intended for those who have previously attended the SAS Macro course or who have equivalent knowledge. Additionally, we recommend that attendees have six months of regular SAS programming experience which includes the use of SAS Macro Language, to gain the most benefit from this course.


AM1 SAS Macro Best Practices

  • Writing Reusable Macros
  • Modular Programming
  • Design Considerations
  • Passing Values between Macros
  • Debugging

AM2 SAS I/O Functions

  • Introduction
  • Using Table Functions
  • Using Directory Functions
  • Using File Functions

AM3 Programming Resilient Macros

  • Parameter Validation
  • Macro Quoting Functions

AM4 Advanced DATA Step Techniques

  • Call EXECUTE
  • Call SET
  • RESOLVE Function (Optional)
  • DOSUBL Function (Optional)