在sas中的数字前添加撇号

在sas中的数字前添加撇号,sas,Sas,我想在sas中的变量前面加一个撇号,这样excel中的输出显示为正确的数字,而不是科学符号 proc-SQL; 创建表PERM.accounts作为 选择不同的 输入(LOAN_ACCOUNT_NO,$30.)为“ACCOUNT NO”,但这会在excel中产生如下数字:1.23456E+12-但我需要输出如下所示:1234567891234 欺骗excel的方法是在数字前面加一个撇号,如:“1234567891234” 如何在proc sql中编写此代码 ,input(LOAN_ACCOUN

我想在sas中的变量前面加一个撇号,这样excel中的输出显示为正确的数字,而不是科学符号

proc-SQL; 创建表PERM.accounts作为 选择不同的 输入(LOAN_ACCOUNT_NO,$30.)为“ACCOUNT NO”,但这会在excel中产生如下数字:1.23456E+12-但我需要输出如下所示:1234567891234 欺骗excel的方法是在数字前面加一个撇号,如:“1234567891234” 如何在proc sql中编写此代码

 ,input(LOAN_ACCOUNT_NO, best32.)   as 'Account No'n
,input(LOAN_ACCOUNT_NO, $30.)   as 'Account No'n
如何在proc sql函数中使用
catx
语句追加LOAN\u ACCOUNT\u NO

更多代码(来自注释)


尝试ODS而不是PROC导出:

ODS tagsets.ExcelXP FILE = "DATA_&END_CURR_MTH..xml";

proc print data=PERM.FINAL_&END_CURR_MTH;
  format .....;
run;

在打印语句中适当设置格式。

尝试ODS而不是PROC EXPORT:

ODS tagsets.ExcelXP FILE = "DATA_&END_CURR_MTH..xml";

proc print data=PERM.FINAL_&END_CURR_MTH;
  format .....;
run;

在打印语句中适当设置格式。

当创建要用Excel打开的csv附件时,问题不止一个,即在csv的默认打开操作期间,Excel将遵守csv中的文本公式

您还可以通过在帐号中添加硬空格字符(xA0)来强制SAS Proc Export输出双引号字符值

例如:

data have;
  acct = '123456789012345';
  accnum = input(acct,best32.);
  acctsq = cats("'",acct);

  acctweak = strip(acct)||byte(160);
  acctdqformula = cats('=TEXT(',acct,',"0")');
run;

proc export data=have outfile="c:\temp\sandbox.csv" dbms=csv replace label;
run;

options noxwait noxsync xmin;
%sysexec start "Open Excel" excel c:\temp\sandbox.csv;
因此,创建
PERM.FINAL\u和END\u CURR\u MTH
的SQL语句可以

, strip(LOAN_ACCOUNT_NO)||byte(160) as 'Account No'n
, cats('=TEXT(',LOAN_ACCOUNT_NO,',"0")') as 'Account No'n

创建用于附件的Excel文件

ODS EXCEL file = "&OUTPUT_DATA_DIR.\&CSV_FNAME..xlsx";
proc PRINT data=&IN_DSNAME;
ODS EXCEL CLOSE;

… attach &CSV_FNAME..xlsx with content type application/ms-excel

当创建要用Excel打开的csv附件时,问题不止一个,即在csv的默认打开操作期间,Excel将遵守csv中的文本公式

您还可以通过在帐号中添加硬空格字符(xA0)来强制SAS Proc Export输出双引号字符值

例如:

data have;
  acct = '123456789012345';
  accnum = input(acct,best32.);
  acctsq = cats("'",acct);

  acctweak = strip(acct)||byte(160);
  acctdqformula = cats('=TEXT(',acct,',"0")');
run;

proc export data=have outfile="c:\temp\sandbox.csv" dbms=csv replace label;
run;

options noxwait noxsync xmin;
%sysexec start "Open Excel" excel c:\temp\sandbox.csv;
因此,创建
PERM.FINAL\u和END\u CURR\u MTH
的SQL语句可以

, strip(LOAN_ACCOUNT_NO)||byte(160) as 'Account No'n
, cats('=TEXT(',LOAN_ACCOUNT_NO,',"0")') as 'Account No'n

创建用于附件的Excel文件

ODS EXCEL file = "&OUTPUT_DATA_DIR.\&CSV_FNAME..xlsx";
proc PRINT data=&IN_DSNAME;
ODS EXCEL CLOSE;

… attach &CSV_FNAME..xlsx with content type application/ms-excel

源中贷款账号的数据类型是什么?这是一个字符变量,我现在尝试过:,catx(“”,loan_account_no)作为“account no”,它适用于SAS,但excel会将其放回科学符号中。您可以显示如何将文件导出到excel吗?%SASSTARTUP;%宏导出邮件(IN\u DSNAME=PERM.FINAL\u-END\u-CURR\u-MTH,CSV\u-FNAME=DATA\u-END\u-CURR\u-MTH);proc EXPORT data=&IN\u DSNAME outfile=“&OUTPUT\u data\u DIR.\&CSV\u FNAME..CSV”dbms=CSV替换标签;跑filename myfile EMAIL to=(“&EMAIL\u RECIP\u 1.”)from=('@')replyto=('@'))subject=('Sample')attach=(“&OUTPUT\u DATA\u DIR.\&CSV\u FNAME..CSV”content\u type='application/excel')。。。源中贷款账号的数据类型是什么?这是一个字符变量,我现在尝试过:,catx(“”,loan_account_no)作为“account no”,它适用于SAS,但excel会将其放回科学符号中。您可以显示如何将文件导出到excel吗?%SASSTARTUP;%宏导出邮件(IN\u DSNAME=PERM.FINAL\u-END\u-CURR\u-MTH,CSV\u-FNAME=DATA\u-END\u-CURR\u-MTH);proc EXPORT data=&IN\u DSNAME outfile=“&OUTPUT\u data\u DIR.\&CSV\u FNAME..CSV”dbms=CSV替换标签;跑filename myfile EMAIL to=(“&EMAIL\u RECIP\u 1.”)from=('@')replyto=('@'))subject=('Sample')attach=(“&OUTPUT\u DATA\u DIR.\&CSV\u FNAME..CSV”content\u type='application/excel')。。。