【发布时间】:2017-05-12 10:01:39
【问题描述】:
我有一个包含数据库信息的工作簿,该工作簿分为多个选项卡,我想将这些信息导入 SAS 以进行进一步操作。
这些数据库表的尺寸因选项卡而异,此外,在本项目的整个任期内,表的尺寸可能会进一步变化。
因此,我在每个选项卡中设置了动态命名范围,以便它获取我需要的确切尺寸,即我的命名范围 TBL_SHEET1
=OFFSET(SHEET1!$A$1,0,0,COUNTA(SHEET1!$A:$A),COUNTA(SHEET1!$1:$1)-2)
现在 SAS 的问题是,当我使用 proc 导入代码时,它似乎不认为这些命名范围“存在”并在日志中返回失败消息。
有没有办法解决这个问题?还是只是 SAS 与 Excel 通信方式的限制?
(作为旁注,我不只是导入整个选项卡的原因是因为右侧有一些额外的列我想从我的导入中排除)
我的 SAS 导入代码:
proc import
out= rwork.SHEET1
datafile = "C:\My User\Sample.xlsx"
dbms= excel replace;
range=TBL_SHEET1.;
getnames=yes;
run;
【问题讨论】:
-
请提供您的
proc import代码和失败信息的内容。 -
几年前我研究过这个并发现了同样的事情,即 SAS 只识别简单的命名范围,而不是动态范围。这不太可能是 SAS 的故障,而更多的是使两个软件能够相互通信的引擎。我想我最终创建了一个比我需要的更大的固定命名范围,仅用于导入 SAS
-
你用的是什么引擎?您是否使用像 EXCEL 这样调用 microsoft 代码的软件?还是可以在非 Windows 操作系统上运行的新 XLSX 引擎?
-
@Tom 在 SAS 9.3、Excel 2013 上运行。
标签: excel sas named-ranges