<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic coditional format excel import in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394798#M25420</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below are cobbled together some really nice dynamic SAS&amp;nbsp;code to import excel workbooks and their uniquie sheets from a given location.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm having trouble though assembling the imported data into one data set with fixed data types.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The data may have up 3000 obeservervations at the top of the data&amp;nbsp;with no data in a given column.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SQl is used&amp;nbsp;to create a case when statement to provide the apporpriate data&amp;nbsp;type&amp;nbsp;however I continue to get the same error as any other method of import and assembly;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ERROR: INPUT function requires a character argument.&lt;/P&gt;
&lt;P&gt;ERROR: Numeric format F in PUT function requires a numeric argument.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The concept is to process the excel workbooks as is without manipulation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any ideas that do not include scripting&amp;nbsp;save the&amp;nbsp;sheets into CSV?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CODE:&lt;/P&gt;
&lt;P&gt;"&lt;/P&gt;
&lt;P&gt;** CREATE THE TABLE WITH COLUMNS BROAD ENCOUGH TO ACCEPT ALL YOUR DATA;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%Let&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; PATHER = D:\TEST_EXCEL\;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;SQL&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;NOCONSTDATETIME&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;NOPRINT&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;** FIND ALL THE EXCEL FILES IN A LOCATION;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;keep&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; filename;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; fref $&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;8&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; filename $&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;80&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;rc = filename(fref, &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; rc = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;did = dopen(fref);&lt;/P&gt;
&lt;P&gt;rc = filename(fref);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; msg &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$200.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;msg = sysmsg();&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;put&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; msg=;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;did = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; did &amp;lt;= &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; putlog &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'ERR'&lt;/FONT&gt; &lt;FONT color="#800080" face="Courier New" size="3"&gt;'OR: Unable to open directory.'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;dnum = dnum(did);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; dnum;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;filename&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; = dread(did, i);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;fid = mopen(did, filename);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; fid &amp;gt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;and&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; index(filename,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;".xl"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;rc = dclose(did);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;*PULL ALL THE SHEETS INTO A DATA SET WITH REUSABLE SHEET# AS THE DATASET NAME;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; ReadXls (inf, dir, ord);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;libname excellib excel &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 1 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;proc sql ; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 2 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;create table sheetname as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select tranwrd(tranwrd(Memname,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;' '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;''&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;),&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'$'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;''&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) as sheetname&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;from sashelp.vstabvw&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; where libname=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"EXCELLIB"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;select count(DISTINCT sheetname) into :cnt_sht&lt;/P&gt;
&lt;P&gt;from sheetname;&lt;/P&gt;
&lt;P&gt;select DISTINCT sheetname into :sheet1 - :sheet%&lt;STRONG&gt;&lt;I&gt;left&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;cnt_sht)&lt;/P&gt;
&lt;P&gt;from sheetname;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;libname excellib clear; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 3 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;cnt_sht;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;** IF THIS IS FIRST SHEET FIRST WORK BOOK MAKE A DATA SET;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;ord =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; and &amp;amp;cnt_sht =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; proc import datafile=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;out= base replace;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; sheet=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;getnames=yes;&lt;/P&gt;
&lt;P&gt;mixed=yes;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table base as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select monotonic() as row, *,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; as src from base;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;** EVALUATE THE DATASET FORMAT BY MOVING INTO VARABLES;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;data sleep; call sleep(&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;10&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.01&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;); run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes1 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_1'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes2 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_2'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes3 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_3'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;** EVALUATE VARIABLE AND FLATTEN TABLE INTO ONE FORMAT;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table master as(&lt;/P&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;row&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes1) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_1, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_1, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes2) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_2, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_2, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes3) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_3, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_3, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_3&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;,src&lt;/P&gt;
&lt;P&gt;from base);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;**APPEND THE DATASET WITH FLATTENED FORMAT TO FIRST TABLE;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; proc import datafile=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt; &lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 4 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;out= sheet&amp;amp;i replace;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; sheet=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;getnames=yes;&lt;/P&gt;
&lt;P&gt;mixed=yes;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table base as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select monotonic() as row, *, &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; as src from sheet&amp;amp;i;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;data sleep; call sleep(&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;10&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.01&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;); run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes1 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_1'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes2 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_2'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes3 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_3'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table baser as(&lt;/P&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;row&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes1) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_1, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_1, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes2) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_2, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_2, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes3) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_3, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_3, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_3&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;,src&lt;/P&gt;
&lt;P&gt;from base);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; proc append base=master data=base force; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 5 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;　&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; ReadXls;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;_null_&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files(&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;obs&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;file_name=filename;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;call&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; execute(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%nrstr(%ReadXls('&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||trim(file_name)||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', 1))'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;_null_&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files(&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;firstobs&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;file_name=filename;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;call&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; execute(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%nrstr(%ReadXls('&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||trim(file_name)||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', 2))'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;"&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 11 Sep 2017 18:01:44 GMT</pubDate>
    <dc:creator>TimMandell</dc:creator>
    <dc:date>2017-09-11T18:01:44Z</dc:date>
    <item>
      <title>coditional format excel import</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394798#M25420</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below are cobbled together some really nice dynamic SAS&amp;nbsp;code to import excel workbooks and their uniquie sheets from a given location.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm having trouble though assembling the imported data into one data set with fixed data types.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The data may have up 3000 obeservervations at the top of the data&amp;nbsp;with no data in a given column.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SQl is used&amp;nbsp;to create a case when statement to provide the apporpriate data&amp;nbsp;type&amp;nbsp;however I continue to get the same error as any other method of import and assembly;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ERROR: INPUT function requires a character argument.&lt;/P&gt;
&lt;P&gt;ERROR: Numeric format F in PUT function requires a numeric argument.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The concept is to process the excel workbooks as is without manipulation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any ideas that do not include scripting&amp;nbsp;save the&amp;nbsp;sheets into CSV?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CODE:&lt;/P&gt;
&lt;P&gt;"&lt;/P&gt;
&lt;P&gt;** CREATE THE TABLE WITH COLUMNS BROAD ENCOUGH TO ACCEPT ALL YOUR DATA;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%Let&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; PATHER = D:\TEST_EXCEL\;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;SQL&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;NOCONSTDATETIME&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;NOPRINT&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;** FIND ALL THE EXCEL FILES IN A LOCATION;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;keep&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; filename;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; fref $&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;8&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; filename $&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;80&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;rc = filename(fref, &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; rc = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;did = dopen(fref);&lt;/P&gt;
&lt;P&gt;rc = filename(fref);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; msg &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$200.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;msg = sysmsg();&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;put&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; msg=;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;did = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; did &amp;lt;= &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; putlog &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'ERR'&lt;/FONT&gt; &lt;FONT color="#800080" face="Courier New" size="3"&gt;'OR: Unable to open directory.'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;dnum = dnum(did);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; dnum;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;filename&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; = dread(did, i);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;fid = mopen(did, filename);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; fid &amp;gt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;and&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; index(filename,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;".xl"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;rc = dclose(did);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;*PULL ALL THE SHEETS INTO A DATA SET WITH REUSABLE SHEET# AS THE DATASET NAME;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; ReadXls (inf, dir, ord);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;libname excellib excel &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 1 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;proc sql ; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 2 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;create table sheetname as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select tranwrd(tranwrd(Memname,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;' '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;''&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;),&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'$'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;''&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) as sheetname&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;from sashelp.vstabvw&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; where libname=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"EXCELLIB"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;select count(DISTINCT sheetname) into :cnt_sht&lt;/P&gt;
&lt;P&gt;from sheetname;&lt;/P&gt;
&lt;P&gt;select DISTINCT sheetname into :sheet1 - :sheet%&lt;STRONG&gt;&lt;I&gt;left&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;cnt_sht)&lt;/P&gt;
&lt;P&gt;from sheetname;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;libname excellib clear; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 3 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;cnt_sht;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;** IF THIS IS FIRST SHEET FIRST WORK BOOK MAKE A DATA SET;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;ord =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; and &amp;amp;cnt_sht =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; proc import datafile=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;out= base replace;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; sheet=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;getnames=yes;&lt;/P&gt;
&lt;P&gt;mixed=yes;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table base as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select monotonic() as row, *,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; as src from base;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;** EVALUATE THE DATASET FORMAT BY MOVING INTO VARABLES;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;data sleep; call sleep(&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;10&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.01&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;); run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes1 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_1'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes2 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_2'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes3 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_3'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;** EVALUATE VARIABLE AND FLATTEN TABLE INTO ONE FORMAT;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table master as(&lt;/P&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;row&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes1) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_1, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_1, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes2) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_2, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_2, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes3) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_3, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_3, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_3&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;,src&lt;/P&gt;
&lt;P&gt;from base);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;**APPEND THE DATASET WITH FLATTENED FORMAT TO FIRST TABLE;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; proc import datafile=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt; &lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 4 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;out= sheet&amp;amp;i replace;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; sheet=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;getnames=yes;&lt;/P&gt;
&lt;P&gt;mixed=yes;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table base as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select monotonic() as row, *, &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;&amp;amp;sheet&amp;amp;i"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; as src from sheet&amp;amp;i;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;data sleep; call sleep(&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;10&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.01&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;); run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes1 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_1'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes2 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_2'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;PROC SQL ; select distinct type INTO :tes3 from DICTIONARY.columns where memname =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'BASE'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; AND name =&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'COL_3'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; quit;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;proc sql ;&lt;/P&gt;
&lt;P&gt;create table baser as(&lt;/P&gt;
&lt;P&gt;select&lt;/P&gt;
&lt;P&gt;row&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes1) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_1, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_1, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes2) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_2, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_2, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_2&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;,case when %&lt;STRONG&gt;&lt;I&gt;TSLIT&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;&amp;amp;tes3) like &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%num%'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; then put(COL_3, &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;25.20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;) else input( COL_3, &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$25.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) end as COL_3&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;,src&lt;/P&gt;
&lt;P&gt;from base);&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; proc append base=master data=base force; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 5 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;　&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; ReadXls;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;_null_&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files(&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;obs&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;file_name=filename;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;call&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; execute(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%nrstr(%ReadXls('&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||trim(file_name)||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', 1))'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;_null_&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files(&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;firstobs&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;file_name=filename;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;call&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; execute(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%nrstr(%ReadXls('&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||trim(file_name)||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', 2))'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;"&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 11 Sep 2017 18:01:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394798#M25420</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2017-09-11T18:01:44Z</dc:date>
    </item>
    <item>
      <title>Re: coditional format excel import</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394839#M25421</link>
      <description>&lt;P&gt;Create a master table that has the types you need in a file.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Import the datasets as is.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Run through EACH variable and compare it against the required type (use VTYPE) and do the conversions as nessary.&lt;/P&gt;
&lt;P&gt;Append the results to your master table.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CSV is easier IMO, but I've done this as well.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if vtype(var1)='C' then var1_desired = input(var1, 8.);
else var1_desired=var1;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 11 Sep 2017 18:09:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394839#M25421</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-09-11T18:09:06Z</dc:date>
    </item>
    <item>
      <title>Re: coditional format excel import</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394840#M25422</link>
      <description>&lt;P&gt;And there's the DBSASTYPE option as well that may work for you.&lt;/P&gt;
&lt;P&gt;I partially assumed that's not an option for some reason.&lt;/P&gt;</description>
      <pubDate>Mon, 11 Sep 2017 18:10:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/394840#M25422</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-09-11T18:10:10Z</dc:date>
    </item>
    <item>
      <title>Re: coditional format excel import</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/395125#M25438</link>
      <description>&lt;P&gt;using the following would be smarter on completely unknown data;&lt;/P&gt;
&lt;P&gt;if vtype(var1)='C' then var1_desired = input(var1, 8.);&lt;BR /&gt;else var1_desired=var1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Because I did know a few things up front I went with DBSASTYPE as shown below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please comment if you see an error I may have over looked.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;options&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; MACROGEN &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;MPRINT&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;mlogic&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%Let&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; PATHER = D:\TEST;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;** CREATE THE TABLE WITH COLUMNS BROAD ENCOUGH TO ACCEPT ALL YOUR DATA;&lt;/P&gt;
&lt;P&gt;**set the master table;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;Data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; work.master;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;attrib&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;col_1 &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;8&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;best25.18&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;col_2 &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;8&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;best25.18&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;col_3 &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; =&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;8&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; = &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;best25.18&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;Stop&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;Run&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;SQL&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;NOCONSTDATETIME&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;PRINT&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;keep&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; filename;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; fref $&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;8&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; filename $&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;80&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;rc = filename(fref, &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; rc = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;did = dopen(fref);&lt;/P&gt;
&lt;P&gt;rc = filename(fref);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;length&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; msg &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;$200.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;msg = sysmsg();&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;put&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; msg=;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;did = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; did &amp;lt;= &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; putlog &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'ERR'&lt;/FONT&gt; &lt;FONT color="#800080" face="Courier New" size="3"&gt;'OR: Unable to open directory.'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;dnum = dnum(did);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i = &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; dnum;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;filename&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; = dread(did, i);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;fid = mopen(did, filename);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; fid &amp;gt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;and&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; index(filename,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;".xl"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;rc = dclose(did);&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; ReadXls (inf, dir);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;libname excellib excel &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 1 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;proc sql noprint; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 2 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;create table sheetname as&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; select tranwrd(tranwrd(Memname,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;' '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;''&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;),&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'$'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;''&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;) as sheetname&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;from sashelp.vstabvw&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; where libname=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"EXCELLIB"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;select count(DISTINCT sheetname) into :cnt_sht&lt;/P&gt;
&lt;P&gt;from sheetname;&lt;/P&gt;
&lt;P&gt;select DISTINCT sheetname into :sheet1 - :sheet%&lt;STRONG&gt;&lt;I&gt;left&lt;/I&gt;&lt;/STRONG&gt;(&amp;amp;cnt_sht)&lt;/P&gt;
&lt;P&gt;from sheetname;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;libname excellib clear; &lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 3 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;cnt_sht;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;libname myexcel odbc&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; required=&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;dbq=&amp;amp;dir.&amp;amp;inf"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;data base;&lt;/P&gt;
&lt;P&gt;set myexcel."%sysfunc(TRIM(&amp;amp;sheet&amp;amp;i))$"n&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;(dbsastype=(col_1= &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'NUMERIC'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; col_2= &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'NUMERIC'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; col_3= &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'NUMERIC'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;)&lt;/P&gt;
&lt;P&gt;);&lt;/P&gt;
&lt;P&gt;RUN;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#008000" face="Courier New" size="3"&gt;/* STEP 5 */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;proc append base=master&lt;/P&gt;
&lt;P&gt;data=base force;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; ReadXls;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;_null_&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files(&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;obs&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;file_name=filename;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;call&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; execute(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%nrstr(%ReadXls('&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||trim(file_name)||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'))'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;_null_&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; xls_files(&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;firstobs&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;file_name=filename;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;call&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; execute(&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'%nrstr(%ReadXls('&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||trim(file_name)||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;', '&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"&amp;amp;PATHER"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;||&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'))'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Sep 2017 14:38:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/coditional-format-excel-import/m-p/395125#M25438</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2017-09-12T14:38:45Z</dc:date>
    </item>
  </channel>
</rss>

