Tag: sas

自定义输出表以包含缺less的variables

我有一个excel文件,其中包含表壳(包括公式)和从SAS输出的原始数据(例如Sheet 1 = Table Shell; Sheet 2 = Table 1 Data)。 我正在尝试更新表数据,而不必重新执行表壳和相应的公式。 但是,对于时间序列,我有6个参与者组,但是这个周期没有报告数据。 问题是缺less的组夹在中间,我无法将SAS输出粘贴到Excel表格。 我想在结果中输出缺less的组,但是以空白计数和百分比的forms输出。 现在我正在做相当标准的过程proc freq table var*Group/ norow nocol获得计数和总的百分比。 Group 1 | Group 2 | … | Missing Group | Group 5 | Group 6 N 500 303 475 630 % 提前感谢任何帮助!

如何通过SAS代码删除应用于Excel的filter?

我的sas代码读取一个excel文件来提供数据,但有时用户可能会保存应用了filter的文件,在这种情况下,SAS不会input完整的数据,而是应用了filter后的数据。 有没有办法删除使用SAS的filter。 使用DDE或ODS的东西可能是? 谢谢!!

从SAS表创build一个Excel报告。

你好,谢谢你的时间, 我试图从SAS表做一个Excel报告。 我需要在同一个报表上放置不同的表格。 ¿可以select我希望放置桌子的线条和柱子吗? options center; ods listing close; ods tagsets.ExcelXP path="C:\" file="MAY..xls" style=statistical; %let page=%sysfunc(putn(tryal.cups)); ods tagsets.ExcelXP options(sheet_name="&page"); proc print data=tryal.cups5 noobs label split='*'; run; quit; 我也想设置每一列的宽度。 如果尝试了几件事情,但我无法做到。 谢谢

即使没有错误,Excel-VBA也不会将SAS表格复制到Excel表格中

我希望我的VBA-Excel代码能够读取一个SAS表格,并将这个SAS表格复制到一个Excel表格中。 有很多检查点。 例如,首先检查SAS表是否与If fileExists(sSasTable1)存在,如果存在则继续进行( fileexist是检查表的另一个函数)。 然后,我实现了errorObject ,以确保当发生错误时,vba程序会向我显示错误的详细信息。 当我检查debugging时,我可以看到,代码可以在第一个if-loopfindSAS表,它打开连接和logging集,但它不能执行rTarget.CopyFromRecordset rs应该复制SAS-表到Excel表。 然后它转到DisplayErrorInfo而不是rs.close 。 但它不会给出任何错误信息。 所以我不太明白 行rTarget.CopyFromRecordset rs有什么问题? 为什么不显示任何错误信息? Public Sub InsertSASFileIntoExcel() Dim YearMonth As String, SASOutput1 As String, SASOutputPath As String YearMonth = Sheets("Prognos").Cells(11, 2).Value SASOutputPath = "C:\\directories\output" SASOutput1 = "prognos_" & YearMonth Dim sSasTable1 As String: sSasTable1 = SASOutputPath & "\" & SASOutput1 & ".sas7bdat" If […]

如何过滤VBA中SASDataView对象的date列(SAS Excel Add in for Excel 2007)

我有一个用户窗体的button。 我想将filter应用于Date_ID字段工作表中的工作表,其中包含button单击上的SAS数据集的链接。 SAS数据集中Date_ID字段的格式为ddmmyy10。 在包含SAS数据集链接的Excel工作表中,它显示为“31.10.2015” 部分UserForm代码与声明: Public excelSASAddIn As SASExcelAddIn Public datafeed As SASDataView Private Sub UserForm_Initialize() Set excelSASAddIn = Application.COMAddIns.Item("SAS.ExcelAddIn").Object Set datafeed = excelSASAddIn.GetDataView("SASApp_REPORTS_DATAFEED") End Sub button点击代码: Private Sub createReportButton_Click() datafeed.Filter = "Date_ID = 31/10/2015" datafeed.Refresh End Sub 所以,如果我硬编码date,我没有得到一个错误,但工作表上的SASDataView对象被过滤到0行,显然不应该是这样的。 也试过硬编码10/31/2015 我试过用东西DatePSerial: Dim dateText As String dateText = Format(DateSerial(2015, 10, 31), "dd/MM/yyyy") topsFlops.Filter = "Date_ID = […]

通过数据步骤发送时,导出的xlsx文件已损坏

我导出了sas-dataset,使用WinSCP复制到我的电脑,并成功打开它。 但是,当我使用数据步骤发送文件时,文件已损坏。 我点击Outlook和Excel中的文件说:“该工作簿无法打开或由Microsoft Excel修复,因为它破坏”。 我能做些什么来使文件可以使用数据步骤电子邮件打开。 我的代码: /* Create data */ data A; input B; datalines; 1 ; run; /* Export */ proc export data=A dbms=xlsx replace outfile="/home/USERNAME/xlsx_export"; run; FILENAME Mailbox EMAIL 'user.name@abc.de' Subject='xlsx_test' attach="/home/USERNAME/xlsx_export.xlsx"; DATA _NULL_; FILE Mailbox; PUT "xlsx test"; RUN;

从Excel导入特定的行到SAS

我有一个三栏的Excel表:date,FMV%和交易#: date FMV% Deal# 11/17/2015 0.97 1601 11/30/2015 0.95 1601 12/18/2015 0.95 1602 12/31/2015 0.97 1602 1/18/2016 0.97 1602 1/31/2016 0.95 1602 我需要使用该excel文件中的FMV%,并在SAS中创build一个新列,并将其与当前委托人每月相乘。 11/30/2015是第一个月的结束。 每次贷款时我都需要获得FMV%。 date可以是当月的任何一天,我需要获得与该date相对应的FMV%。 在FMV%值的一个月份和月份结束date中将有任何date。 在MonthEnd1,我们将有FMV的列为: FMV_DOC% FMV_DOC_AMT DMV_DOC_ADJ FMV_DOC_ADI_AMT FMV_ME1% FMV_ME1_AMT FMV_ME1_ADJ FMV_ME1_ADI_AMT 在MonthEnd2中,将添加4列,如下所示: FMV_ME2% FMV_ME2_AMT FMV_ME2_ADJ FMV_ME2_ADI_AMT 在接下来的MonthEnd中,将再添加4个列,并在该excel文件中添加相应的FMV%值并继续。 在这个例子中, 11/30/2015是MonthEnd0 12/31/2015是MonthEnd1 01/31/2016是MonthEnd2 ,依此类推。 也, FMV_DOC_ADI_AMT = FMV_DOC_ADJ FMV_ME1_ADI_AMT = FMV_DOC_ADI_AMT-FMV_ME1_ADJ FMV_ME2_ADI_AMT […]

带有dynamic命名范围的SAS PROC导入

我有一个包含数据库信息的工作簿,这些信息分成了多个要导入SAS进行进一步操作的选项卡。 这些数据库表的维度因标签而异,此外,在整个项目任期内,表格的维度可能会有所变化。 因此,我已经在每个选项卡中设置了dynamic命名范围,这样它就TBL_SHEET1我需要的确切尺寸,即我的命名范围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;

使用DDE在Excel中折叠数据透视表列

我想使用SAS操作现有的Excel工作表与DDE: 我有下面的代码(注意!因为Excel中的德语设置,我使用z(rows)和s(c)(列)): option noxwait noxsync; x call "C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE"; %let delay=5; data _null_; rc=sleep(&delay); run; filename sas2xl dde 'excel|system'; data _null_; rc=sleep(&delay); run; %let mapwkbk=H:\odstest.xlsx; data _null_; file sas2xl; rc=sleep(&delay); put '[open("' "&mapwkbk" '")]'; run; filename random dde 'excel|Daten!z2s1:z100s3'; data _null_; set sashelp.class; file random; put name sex age; run; data _null_; file […]

将位于UNIX服务器上的excel文件导入SAS

我试图导入一个Excel文件到数据集使用SAS,但是常规的方法: PROC IMPORT OUT= test.test DATAFILE= "M:/excelfile.xls" DBMS=EXCEL REPLACE; SHEET="Sheet1"; GETNAMES=YES; MIXED=NO; SCANTEXT=YES; USEDATE=YES; SCANTIME=YES; RUN; 只适用于Windows。 我使用SAS 9.2 ..我尝试了不同的DBMS像XLS,EXCELCS没有运气…我一直在这个投资了很多时间我想知道是否有可能..我没有访问任何其他语言除SASshell外(无PERL) 无论如何要完成我在找什么? 这些是已安装的基本产品 操作系统:AIX 64 —基础产品 — SAS / STAT — SAS / GRAPH — SAS / ETS — SAS / OR — SAS / CONNECT — SAS集成技术 —或OPT —或PRS —或者IVS —或LSO — SAS / ACCESS接口到DB2