Brauche Hilfe beim Importieren von Excel, spezifisches Arbeitsblatt mit Arbeitsmappentitel zur Verkettung mit vorhandener TabelleIch habe eine Menge Excel-Dateien, aus denen ich Daten zur Analyse in JMP übertrage. Bis vor kurzem habe ich das auf sehr mittelalterliche Weise gemacht, indem ich die Excel-Dateien manuell geöffnet und die relevanten Informationen direkt in die JMP-Tabellen kopiert habe. Obwohl das vertretbar ist, glaube ich, dass die Importfunktion (zusammen mit der Verkettung zum Anhängen an vorhandene Datentabellen) eine viel bessere langfristige Lösung zur Verbesserung der Wirksamkeit ist.
Meine relevanten Informationen befinden sich in Blatt 4 jeder Arbeitsmappe und sind mit „Zyklus“ beschriftet. Ich muss jeweils zwischen 4 und 20 solcher Arbeitsmappen importieren, um damit meine JMP-Tabellen zu aktualisieren. Jede Arbeitsmappe hat einen Zeichenfolgentitel, der normalerweise 8 Zeichen lang ist. Dies ist eine eindeutige Kennung für das getestete Objekt.
Meine Fragen lauten wie folgt: Ist es mir möglich, den Namen der generierten Tabelle beim Importieren (wenn ich derzeit beispielsweise 8 Dateien importiere, lauten die in JMP generierten Tabellen „Zyklus“, „Zyklus 2“, „Zyklus 3“ usw.) durch die Titel der ursprünglichen Excel-Arbeitsmappen zu ersetzen (in diesem Beispiel werden sie zu „Arbeitsmappe 1“, „Arbeitsmappe 2“, „Arbeitsmappe 3“ usw.)?
Meine nächste Frage betrifft die Verkettung. Ist es mir möglich, ein Skript zu schreiben, das eine bestimmte Zelle analysiert (z. B. die von Ihrem Skript generierte, die beim Importieren den Titel der Arbeitsmappe in eine bestimmte Spalte kopiert) und dann den Wert in dieser Zelle verwendet, um die Informationen in den verbleibenden Spalten an eine vorhandene JMP-Tabelle anzuhängen?
Zur Verdeutlichung stellen wir uns vor, ich teste ein Objekt, in diesem Fall mit der Bezeichnung „A71320“. Ich habe eine JMP-Datentabelle, die ebenfalls „A71320“ heißt und eine Zusammenstellung aller meiner relevanten Daten für dieses Testobjekt ist. Jeder neue Test generiert eine Excel-Datei, die ebenfalls mit „A71320“ bezeichnet ist. Ich möchte diese Datei mithilfe Ihres Skripts importieren. Wenn ich das richtig verstehe, kopiert es dann alle Daten aus Blatt 4, „Zyklus“, erstellt eine neue JMP-Tabelle mit der Bezeichnung „Zyklus“ und erstellt dann innerhalb dieser neuen Tabelle eine neue Spalte mit 1 ausgefüllten Zelle, „A71320“. Ich möchte dann ein Skript ausführen, das diese Zelle „A71320“ sieht, eine vorhandene Tabelle in JMP mit der Bezeichnung „A71320“ erkennt und alle Informationen außer der Titelzelle von „Zyklus“ an „A71320“ anhängt. Ist das möglich?
Mein aufrichtiger Dank, dass Sie sich die Zeit genommen haben, diese Frage zu lesen.
Antilope
MassenanpassungWindowsBetreff: Benötigen Sie Hilfe beim Importieren von Excel, einem bestimmten Arbeitsblatt mit Arbeitsmappentitel zur Verkettung mit einer vorhandenen TabelleHier ist ein Skript, das Ihnen einen guten Einstieg in das Schreiben Ihres eigenen Skripts geben sollte, um Ihre Aufgabe abzuschließen.Bitte stellen Sie sicher, dass Sie das mitgelieferte Skript studieren, damit Sie verstehen, wie es funktioniert.
Names Default To Here( 1 );
// Set the object in question
object = "A71322";
// Get a list of input xls files to proces
// I am using the method where all files to be processed are moved into a single directory
dir = "C:\users\xxxx\input files\";
theFiles = Files In Directory( dir );
// Create the start of the final data table
dt = New Table( "Combined",
New Column( "Run",
formula(
If(
Row() == 1, 1,
:Cycle ID == 1 & Lag( :Cycle ID ) != 1, Lag( :Run ) + 1,
Lag( :Run )
)
)
),
New Column( "Total Cycle Number", formula( Row() ) )
);
// Loop through all of the file names and select only object in question files
For( i = 1, i <= N Items( theFiles ), i++,
If( Contains( theFiles[i], object ) == 1,
dtCycle = Open(
Char( dir ) || theFiles[i],
Worksheets( "cycle" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
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( "-" )
)
);
dt = dt << concatenate( dtCycle, Append to first table( 1 ) );
// Clean up
Close( dtCycle, nosave );
)
);Betreff: Benötigen Sie Hilfe beim Importieren von Excel, einem bestimmten Arbeitsblatt mit Arbeitsmappentitel zur Verkettung mit einer vorhandenen TabelleHallo @txnelson ,
Ich höre dich! Bitte beachten Sie das angehängte. Wie oben beschrieben, erzeuge ich häufig "neue" A71322.xls-Dateien. Jede Instanz der Datei ist einzigartig (ich habe eine Dateisystemstruktur, um sie zu speichern/unterscheiden) und entspricht jeweils einem "Run", wie in der .jmp-Tabelle beschrieben. Normalerweise öffne ich die Excel-Datei manuell, kopiere dann alle Daten unter den Spaltenüberschriften in das Arbeitsblatt "Zyklus" und füge sie dann in die .jmp-Tabelle unter dem letzten Eintrag in der Spalte "Zyklus-ID" ein. Die Formeln für „Total Cycle Number“ und „Run“ erzeugen korrekte Einträge in der Datentabelle.
Ich war bisher in der Lage, das Obige neu zu erstellen, indem ich die Excel-Bücher importierte, nur das Zyklusblatt, und dann die Basisverkettungsfunktion verwendete. Allerdings ist es derzeit langsam und die Tatsache, dass nur der Blattname importiert wird (was bedeutet, dass der Import von beispielsweise 4 Arbeitsmappen zu "Zyklus", "Zyklus 1", "Zyklus 2" und "Zyklus 3" führt), ist manchmal verwirrend. Es ist schneller für mich, manuell fortzufahren, wie ich es getan habe.
Allerdings wachsen meine Datensätze stetig und deshalb suche ich nach einer Scripting-Lösung. Ich führe Tests für mehrere Batterien durch (z. B. A71321, A71311 usw.) und bin zuversichtlich, dass ich Ihre bereitgestellte Lösung anpassen kann.
Noch etwas zu beachten: Der Titel der Zelle befindet sich im Blatt "Test", Zelle I-6, falls dies hilfreich ist (dies ist jedoch nicht so flexibel wie der Import des Titels der Arbeitsmappe in meinem Szenario. ).
Noch einmal, Ihre Geduld beim Lesen meiner Anfrage und jede bevorstehende Antwort werden beide geschätzt. Wenn Sie weitere Informationen benötigen, stehe ich Ihnen gerne zur Verfügung.
Grüße,
Antilope
Betreff: Benötigen Sie Hilfe beim Importieren von Excel, einem bestimmten Arbeitsblatt mit Arbeitsmappentitel zur Verkettung mit einer vorhandenen TabelleDies scheint keine schwierige Aufgabe zu sein. Die spezifischen Details sind jedoch zu zweideutig, um zu versuchen, ein Skript zu schreiben, das Ihren Anforderungen entspricht.Beispiele Ihrer eingegebenen Excel-Arbeitsmappen und endgültigen Datentabellen wären wirklich hilfreich bei dem Versuch, Sie durch die Entwicklung eines Skripts zu führen.