/ / Wie kann ich eine Excel-Tab-Datei mit mehreren Informations- / Datenabschnitten in SAS importieren? - Excel, Import, Sas, Ausgabe

Wie importiere ich eine Excel-Tab-Datei in SAS mit mehreren Teilen von Informationen / Daten? - Excel, Import, sas, Ausgabe

Ich habe eine Excel-Registerkarte mit mehreren Abschnitten vonverschiedene Daten. Beispielsweise ist Zeile 1-57 eine normale Excel-Datentabelle mit den jeweiligen Feldnamen, aber in Zeile 61 (blaue Zeile am unteren Rand des Screenshots) beginnt ein neuer Tabellendatenabschnitt. Dies wiederholt sich für ein Paar verschiedene Tabellendatenabschnitte innerhalb derselben Excel-Registerkarte. Screenshot Beispiel

Ich möchte diese Excel-Registerkarte in SAS importieren.Wenn Sie dann jeden Tabellendatenabschnitt als eigene Tabelle ausgeben, habe ich darüber nachgedacht, den Namen des blauen Zeilenabschnitts zu verwenden, um festzustellen, dass es sich um den Beginn eines neuen Abschnitts handelt es in SAS-Codes.

Danke im Voraus.

Antworten:

0 für die Antwort № 1

Zwei Ideen für dich. Wenn es sich um eine small-ish-Datei handelt und Sie alle Abschnittskopfnamen kennen, können Sie Folgendes tun:

data example;
input id $ var1 - var5;
datalines;
NameA   .   .   .   .   .
A1  11  11  21  24  14
A2  9   8   1   2   3
A3  4   4   3   4   3
A4  2   9   1   2   4
Total   26  32  26  32  24
"" .   .   .   .   .
NameB   .   .   .   .   .
B1  3166    4135    1186    3775    5641
run;


data step1;
set example;
retain tablenum 0;
if id in ("NameA", "NameB", "NameC") then tablenum + 1;
run;

data table1 table2 /*table... all the way to table N*/;
set step1;
select (tablenum);
when (1) do; output table1; end;
when (2) do; output table2; end;

*when (N) do; *output tableN; *end;
end;
run;

Eine andere Sache, die Sie tun können, wenn Sie wissen, wo alles istDie Umbrüche bestehen darin, mit proc import stückweise anzugehen und SAS mit dem Bereich mitzuteilen, wo jede Tabelle beginnt und endet (in diesem Beispiel wird davon ausgegangen, dass Ihre Excel-Tabelle in Spalte Z geht und Ihre zweite Tabelle in Zeile 140):

PROC IMPORT OUT= WORK.tableA DATAFILE= "C:xlsfile.xlsx"
DBMS=EXCEL REPLACE; Range = "SheetName$A1:Z57";
RUN;

PROC IMPORT OUT= WORK.tableB DATAFILE= "C:xlsfile.xlsx"
DBMS=EXCEL REPLACE; Range = "SheetName$A61:Z140";
RUN;