Erstellen von Gruppen nach DatenbankabfrageHallo,
Ich habe eine Datenbankabfrage, die eine große Tabelle mit mehr als 200 Spalten zurückgibt, und möchte sie vor der Arbeit bereinigen.
Die Spalten enthalten Anfangsbegriffe, die die Quelle des Messwerkzeugs bezeichnen, wie etwa Raman, XRD, XRF, BET, PSA usw.
Für jeden dieser Begriffe möchte ich eine Gruppe erstellen und den Namen aus der obigen Liste als Namen der Gruppe verwenden.
Beispielsweise gibt es 20 Spalten, die mit dem Begriff „Raman“ beginnen, und ich möchte sie alle zusammen gruppieren.
Wie soll ich das skripten? Ich habe versucht, eine Liste mit „Name beginnt mit(„Raman“)“ zu erstellen, aber das scheint eine leere Liste zurückzugeben.
Randbemerkung: Ich habe ChatGPT gefragt, aber das war nutzlos.
Andy
Automatisierung und SkriptingBetreff: Erstellen von Gruppen nach DatenbankabfrageDies hängt teilweise von Ihren Daten ab, aber die Grundidee ist normalerweise
- Liste Ihrer Spalten abrufen
- Durchlaufen Sie die Liste, während Sie die Spalten in entsprechenden Gruppen sammeln.
- Schleife über die entsprechenden Gruppen und erstelle die Spaltengruppen
For Each() für Schleifen, Associative Array() für Datenstrukturen und ggf. Starts With() zum Prüfen auf Gruppen (oder Word(1,...))
Betreff: Erstellen von Gruppen nach DatenbankabfrageHier fange ich an und nein, das funktioniert nicht.
Names Default to Here(1);
dt = Current Data Table();
CL = dt << Get Column Names();
Raman={};
For Each ( {value,index},CL,if(starts with(value,"Raman"),Raman<<INSERT item=""></INSERT>Next steps
Andy
Betreff: Erstellen von Gruppen nach DatenbankabfrageEinige Fragen:
- Möchten Sie alle Spalten gruppieren?
- Verfügen Ihre Spalten über eindeutige Trennzeichen für die Gruppe, wie etwa Unterstriche (Raman_)
Names Default To Here(1);
dt = Current Data Table();
CL = dt << Get Column Names();
Raman = {};
For Each({value}, CL,
If(Starts With(value, "Raman"),
Insert Into(Raman, value);
);
);
dt << Group Columns("Raman", Raman);
Und ein vollständiges Beispiel basierend auf den Beispielen, die ich habe
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(1),
Compress File When Saved(1),
New Column("Raman1", Numeric, "Continuous", Format("Best", 12), Set Values([.])),
New Column("Raman2", Numeric, "Continuous", Format("Best", 12), Set Values([.])),
New Column("XRD1", Numeric, "Continuous", Format("Best", 12), Set Values([.])),
New Column("Raman3", Numeric, "Continuous", Format("Best", 12), Set Values([.])),
New Column("XRD2", Numeric, "Continuous", Format("Best", 12), Set Values([.]))
);
collist = dt << Get Column Names("String");
aa_groups = Associative Array();
aa_groups["Raman"] = {};
aa_groups["XRD"] = {};
For Each({groupname}, aa_groups << get keys,
For Each({value}, collist,
If(Starts With(value, groupname),
Insert Into(aa_groups[groupname], value);
);
);
);
For Each({{groupname, cols}}, aa_groups,
dt << Group Columns(groupname, cols);
);
