Importieren Sie Excel-Daten, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindIch versuche, eine ExceI-Datendatei mit dem Namen in Zeile 1 zu importieren, aber die eigentlichen Datenspaltenüberschriften beginnen in Zeile 7 und die Daten beginnen in Zeile 8 (siehe angehängte Datei). Ich möchte, dass die importierten Daten so aussehen:
Name Datum Durchfluss-acft Konzentration-ug / L (25) Last-metrische Tonnen (25)
S382_P 18.06.2015 90.890579 93 0.010426405
Hat jemand Vorschläge, wie ich diese Art von Daten einlesen kann, damit der Stationsname den Daten zugeordnet wird? Lass es mich wissen, bitte. Vielen Dank!
Betreff: Excel-Daten importieren, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindWenn Sie den Excel-Assistenten verwenden, ist dies ganz einfach. Gehen Sie in JMP zu
Datei ==> Öffnen
Navigieren Sie dann zum Speicherort der Excel-Tabelle.
Klicken Sie einmal auf die einzulesende Datei, um sie zu markieren.
Gehen Sie dann in den unteren linken Bereich des Navigationsfensters und klicken Sie auf den Dropdown-Pfeil neben Öffnen.
Wählen Sie "Excel-Assistenten verwenden"
Im Assistenten können Sie die Zeile mit den Spaltenüberschriften auswählen (6).
und die Zeile, in der die Daten beginnen (7)Betreff: Excel-Daten importieren, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindJim, die Anweisungen sind in Ordnung, wenn alle Daten in separaten Spalten enthalten sind, ich aber ein anderes Dateilayout habe. In der angehängten Datei sehen Sie, dass der Sendername nur einmal in angezeigt wird Zeile 1 , während die Überschriften in beginnen Zeile 7 und die Daten in Zeile 8. Die Stationsnamen werden über den Datenköpfen und -spalten "gestapelt". Bitte lassen Sie mich wissen, wie ich den Stationsnamen einlesen kann, und ordnen Sie diesen Stationsnamen dem entsprechenden Header / den entsprechenden Daten zu.
In der angehängten Beispieldatei sind die Daten für 4 Stationen aufgelistet und die Namen dieser Stationen sind in den Excel-Dateiadressen enthalten: A1, I1, Q1, Y1 (gelb hervorgehoben). Für die erste Station in der Datei lautet der Stationsname S382_P (in A1 gefunden), und die Daten für diese Station befinden sich in den Spalten A - H (die Kopfzeile beginnt in Zeile 7 und die Daten in Zeile 8). die zweite Station ist S382_C (in I1 gefunden) und die Daten für diese Station sind in den Spalten I - P usw. zu finden. Ich möchte, dass die importierten Daten beim Erstellen einer JMP-Datendatei so aussehen:
Name Datum Durchfluss-acft Konzentration-ug / L (25) Last-metrische Tonnen (25) mehr Spalten. . .
S382_P 18.06.2015 90.890579 93 0.010426405
Betreff: Excel-Daten importieren, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindSorry .... ich habe deine ursprüngliche Frage falsch interpretiert. Unten finden Sie ein Skript, das mit der von Ihnen angegebenen Beispieldatentabelle funktioniert. Ändern Sie einfach den Pfad in der Open () - Funktion in den Pfad zu Ihrer Datentabelle und führen Sie dann das Skript aus.
Names default to here(1);
dtOrig = Open(
"<PATH to="" excel="" file="">\Excel_import_example_file.xlsx",
Worksheets( "example" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 1 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Create a new table with the Column names on row 7 from the original
dtResult = New Table("Final");
dtResult << New Column("Name",Character);
col=1;
While(col>0,
dtResult << New Column(dtOrig[7,col]);
If(left(dtOrig[1,col+1],5)=="Name:",col=-1);
col=col+1;
);
// Now Populate the Table
For( col = 1, col <= N Cols( dtOrig ), col++,
If( Left( dtOrig[1, col ], 5 ) == "Name:",
dtResult << Add Rows( 1 );
resultCol = 1;
Column( dtResult, resultCol)[ N Rows( dtResult ) ] = Trim( Substr( Column( dtOrig, col )[1], 6 ) );
);
resultCol = resultCol + 1;
Column( dtResult, resultCol)[ N Rows( dtResult ) ] = Num( Column( dtOrig, col )[8] );
);
close( dtOrig, nosave );</PATH>

Betreff: Excel-Daten importieren, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindVielen Dank . . . aber das script funktioniert wenn ich nur 1 zeile daten habe. Es scheint jedoch nicht mit mehreren Datenzeilen zu funktionieren. Entschuldigung, ich habe eine kurze Datei als Beispiel gesendet, aber die Datendateien, mit denen ich arbeite, enthalten mehrere Datenzeilen. Ich habe die längere Version der Datei an diese E-Mail angehängt (siehe Arbeitsblatt "Beispiel"). Es wäre toll, wenn Sie mir beim Einlesen mehrerer Datenzeilen behilflich sein könnten.
[cid: image001.png@01D51188.A1E017A0]
Betreff: Excel-Daten importieren, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindEs sieht so aus, als hätten Sie vielleicht ein Bild angehängt, aber aus irgendeinem Grund hat es nicht funktioniert. Können Sie zurückgehen und Ihren Beitrag bearbeiten, um zu versuchen, das Bild erneut anzuhängen?Betreff: Excel-Daten importieren, bei denen nicht alle Informationen in einer einzelnen Zeile oder Spalte enthalten sindWenn die mehreren Zeilen, auf die Sie sich beziehen, zusätzliche Zeilen nach Zeile 8 sind, die dieselbe Struktur wie Zeile 8 haben, funktioniert das folgende Skript
Names Default To Here( 1 );
dtOrig = Open(
"<PATH to="" file="">\Excel_import_example_file.xlsx",
Worksheets( "example" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 1 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Create a new table with the Column names on row 7 from the original
dtResult = New Table( "Final" );
dtResult << New Column( "Name", Character );
col = 1;
While( col > 0,
dtResult << New Column( dtOrig[7, col] );
If( Left( dtOrig[1, col + 1], 5 ) == "Name:",
col = -1
);
col = col + 1;
);
For( theRow = 8, theRow <= N Rows( dtOrig ), theRow++,
// Now Populate the Table
For( col = 1, col <= N Cols( dtOrig ), col++,
If( Left( dtOrig[1, col], 5 ) == "Name:",
dtResult << Add Rows( 1 );
resultCol = 1;
Column( dtResult, resultCol )[N Rows( dtResult )] = Trim( Substr( Column( dtOrig, col )[1], 6 ) );
);
resultCol = resultCol + 1;
Column( dtResult, resultCol )[N Rows( dtResult )] = Num( Column( dtOrig, col )[theRow] );
)
);
Close( dtOrig, nosave );</PATH>