如何在excel中强制列没有值作为date列导入

我有一个Excel文件的列可以为空或包含date值,但是当它导入到SAS我需要列格式为DATE9 。 只要该列不是完全无效的,它可以工作,但在某些情况下,它将会以$CHAR1导入SAS

单元格格式已经是date如果这有所作为。

好吧,我假设你有SAS访问许可的PC文件格式。 您应该能够使用数据集选项DBSASTYPE,这会强制SAS使用所述的数据types,而不考虑input数据的外观。 在你的情况下,你希望它设置为数字,那么你可以使用DATE9。 格式化。 代码应该如下所示,我现在无法testing它。

 DATA WORK.excel_file; set excel.spreadsheet (dbsastype=(column_name=numeric)); format column_name date9.; run; 

我想你需要在导入之后重新定义列。 像这样的东西:

 data importedExcel(drop=suspiciousVariable2); set importedExcel(rename=(suspiciousVariable=suspiciousVariable2)); attrib suspiciousVariable length=8 format=date9.; suspiciousVariable=suspiciousVariable2 + 0; run; 

如果使用数据步骤而不是proc导入导入,则可以轻松定义每个variables的格式。 以下链接提供了一个相当好的示例: http : //www2.sas.com/proceedings/sugi30/038-30.pdf