【问题标题】:SAS / Excel - Expand Single Cell Containing Alt+Enter into RowsSAS / Excel - 将包含 Alt+Enter 的单个单元格展开成行
【发布时间】:2017-05-12 00:08:45
【问题描述】:

(SAS 初学者、一些 SQL 和一些 Excel 经验(无 VBA))

我有一个场景,我希望将 Excel 中的数据字典分解为 SAS 数据。数据字典包含一个单元格中的 Alt+Enters(换行符),我想将其分成单独的行。

我的工具:

  • Windows 7 上的 SAS 9.4
  • Excel 2010

实际 Excel 数据(使用 Alt+Enter):

Variable     | Cell
Name         | Value
-------------------------
Var1         | Val1 = abc     <- there is an Alt+Enter
             | Val2 = def     <- there is an Alt+Enter
             | Val3 = ghi
-------------------------
Var2         | Val1 = jkl     <- there is an Alt+Enter
             | Val2 = mno
-------------------------
Var3         |
-------------------------
Var4         | Words

我希望我的最终数据(在 SAS 中)看起来像:

Variable     | Var      | Var
Name         | Code     | Value
-------------------------------
Var1         | Val1     | abc
Var1         | Val2     | def
Var1         | Val3     | ghi
-------------------------------
Var2         | Val1     | jkl
Var2         | Val2     | mno
-------------------------------
Var3         |          |
-------------------------------
Var4         | Words    |

在这种情况下,我发现我需要:

  1. 在单元格中使用 Excel 换行符 (Alt + Enter) 作为 分隔符(行?)
  2. 使用等号 (=) 作为分隔符
  3. 在展开数据值时维护变量名

注意事项:

  • 原始单元格值中可以有空白值
  • 原始单元格值中可以有不带等号 (=) 的值

寻找执行此操作的最佳方法的建议(例如,只需将 Excel 文件导入 SAS,然后在 SAS 工具中使用它)。

这是我当前将 Excel 电子表格导入 SAS 的数据导入步骤:

PROC IMPORT datafile="filepath" dbms=xlsx out=temp REPLACE;
RANGE="SheetName$A1:B";
DATAROW=2;
RUN;

【问题讨论】:

    标签: excel import sas import-from-excel


    【解决方案1】:

    Excel 将在按下 Alt-Enter 的位置回车。

    data want ;
      set temp;
      do i=1 to countw(cellvalue,'0d'x);
        varcode = scan(cellvalue,i,'0d'x);
        varvalue = scan(varcode,2,'=');
        varcode = scan(varcode,1,'=');
        output;
      end;
    run;
    

    【讨论】:

      猜你喜欢
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2014-06-06
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多