Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenHallo,
Ich möchte Datentabellen anhand ihres Namens verketten.
Ich habe zum Beispiel 6 Datentabellen und ihre Namen lauten etwa M1a M1b M2a M2b M3a M3b. Ich möchte also alle M1-Geräte zusammenführen usw. Der M1-Teil variiert jedoch je nach Name, sodass ich das Skript benötige, um den Namen abzurufen und dann einen Teil des Namens zu vergleichen.
Wir freuen uns über jede Hilfe beim Einstieg
Automatisierung und SkripterstellungInhaltsorganisationBetreff: Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenSind die Tische bereits geöffnet? Wenn nicht, befinden sie sich im selben Ordner und befinden sich andere Dateien im Ordner?
<< Name abrufen kann verwendet werden, um den Namen der Datentabelle abzurufen und Datentabellenliste abrufen() eine Liste offener Datentabellen. Zum Vergleichen von Datentabellennamen gibt es viele Optionen. Welche Sie verwenden, hängt von Ihren Datentabellennamen ab (Regex ist eine Option).
Betreff: Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenHier ist ein Skript, das Ihnen einen Einstieg in die Zusammenstellung Ihres endgültigen Skripts ermöglichen soll.Es erstellt einige Beispieltabellen, die für das Beispiel verwendet werden sollen, sucht sie dann, vergleicht sie mit den ersten beiden Zeichen im Namen und verkettet sie schließlich.
Names Default To Here( 1 );
// create sample data tables
For( i = 1, i <= 6, i++,
New Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ), New Column( "D" ) );
Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ) << add rows( 1 );
Column( Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ), 1 )[1] = i;
);
// Find all data tables that match Mx
concatTableList = {};
shortNameList = {};
For( i = 1, i <= N Table(), i++,
If( Starts With( Data Table( i ) << get name, "M" ),
Insert Into( concatTableList, Data Table( i ) << get name );
Insert Into( shortNameList, Substr( Data Table( i ) << get name, 1, 2 ) );
)
);
// Find the unique key values
theKeys = Associative Array( shortNameList ) << get keys;
// Create the concatenated tables
For Each( {key}, theKeys,
catList = {};
For Each( {tableName}, concatTableList,
If( Starts With( tableName, key ),
Insert Into( catList, tableName )
)
);
If( N Items( catList ) > 1,
dt = New Table( key );
For Each( {cat}, catList, dt << concatenate( Data Table( cat ), append to first table ) );
);
);Betreff: Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenSie könnten auch die Verwendung des Mehrfachdateiimports in Betracht ziehen. Kombinieren Sie entweder alle Tabellen in einer einzigen Tabelle und trennen Sie sie dann mithilfe der Quellspalte in Teilmengen (erstellen Sie eine neue Spalte basierend auf der Quellspalte für die gewünschten Gruppen) oder führen Sie MFI mehrmals mit Platzhaltern * aus (übereinstimmen mit null oder mehr Zeichen), ? (entspricht genau einem Zeichen) und ; (trennen Sie verschiedene Dateinamenmuster), um alle einzelnen Gruppen mit einem MFI-Durchlauf zu erhalten

Betreff: Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenIch glaube nicht, dass das funktionieren kann, da sie alle aus derselben Excel-Arbeitsmappe stammen. Ich öffne diese Arbeitsmappe und jedes Blatt wird zu einer neuen Datentabelle. Gibt es eine Möglichkeit, dass das funktioniert?
Betreff: Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenWenn es sich nur um eine einzelne Excel-Datei handelt, können Sie den Excel-Importassistenten verwenden.

Aktivieren Sie „Arbeitsblätter verketten und versuchen, Spalten abzugleichen“ und „Beim Verketten Spalte mit Arbeitsblattnamen erstellen“. Nachdem Sie Daten in der JMP-Tabelle haben, erstellen Sie eine Gruppierungsspalte und erstellen Sie nach Bedarf Teilmengen.
Betreff: Automatisieren Sie die Verkettung von Datentabellen basierend auf dem NamenDanke