Hank First up do a quick check whether the columns giving you problems are very sparse (ie mostly missing values). SAS checks a certain number of rows to determine the type of the data and if it only encounters null values in the first N rows it will default to one type, which may not be what you want. I think there is an option to increase the number of rows but I have not checked. Also check whether any date columns have all cells formatted in Excel as dates (highlight the column and format the whole column, including empty cells - column names will be unaffected). One trick that may be an easy fix is to insert a new row 2 in your excel data. In this row insert a 9 for every number column and an A for every character column, to force the import to a specific type. Use an identical 2nd row in each table. This row can be removed in SAS by specifying option firstobs = 2 ;. If this trick results in some values not being picked up, force the columns in question to character using this trick and use code in SAS to convert data into numeric. Assuming each table now has columns var3, var5, var9 which have been imported as character but are supposed to be numeric you can do something like this (supposing var3 should be a date). The format specification will ensure the resulting columns are in the right order Data fulldata ; Format var1 .... var99 Best16. ; /* Insert column names */ Format var3 ddmmyy10. ; /* Overrides the previous format for var3 */ set _table1 (firstobs = 2 rename = (var3 = _var3 var5 =_var5 var7 = _var7)) ... _table64 (firstobs = 2 rename = (var3 = _var3 var5 =_var5 var7 = _var7)) ; var3 = input (_var3, ?? ddmmyy10.) ; /* ?? suppresses warning messages when data is in the wrong format */ var5 = input (_var5, comma32.) ; var9 = input (_var9, comma32.) ; Drop _var: ; Run ; Disclaimer: I have no way to test the above code. But I hope you can use it Richard
... View more