Skripterstellung mit mehreren Tabellen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich bin relativ neu in JSL (und Skripting im Allgemeinen) und habe Schwierigkeiten, eine Möglichkeit zu finden, mehrere Tabellen zu manipulieren.
Was ich für jede Zeile einer Tabelle tun möchte, ist, die Daten aus zwei Spalten in zwei globale Variablen umzuwandeln, übereinstimmende Daten in einer zweiten Tabelle anzupassen, dann mit der nächsten Zeile der ersten Tabelle fortzufahren und den Vorgang zu wiederholen.
IE:
Eine Tabelle enthält die Gesamtzahl der Durchläufe für jede Arbeitswoche, eine Zeile pro Woche. Meine zweite Tabelle enthält viele Zeilen für jede Arbeitswoche, aber ich möchte, dass in jeder Zeile die entsprechenden Gesamtläufe für diese Woche in der entsprechenden Spalte angezeigt werden.
Im Skripthandbuch wird der Aufruf von „Aktuelle Datentabelle (gewünschte Tabelle)“ als Methode zum Verschieben Ihrer Referenzen von Tabelle zu Tabelle aufgeführt, aber ich kann es anscheinend nicht zum Laufen bringen.
Ich versuche, so etwas wie das Folgende zum Laufen zu bringen (die Shows dienen nur der Fehlerbehebung):
Aktuelle Datentabelle("Percent Fail");
Für jede Reihe(
globalWeek= :Week;
globalTotal = :N Zeilen;
Show(globalWeek);
Show(globalTotal);
Aktuelle Datentabelle („Run Summary Table“);
Für jede Zeile( if(Week == globalWeek,
Läuft in dieser Woche=globalTotal))
)
Ist das, was ich versuche, möglich? Auch wenn ich am Ende einen anderen Weg finde, diese spezielle Situation zu lösen, bin ich neugierig auf den allgemeinen Prozess beim Wechseln zwischen zwei Tischen wie diesem.
Skripterstellung mit mehreren TabellenDas zweite Argument ist optional und stellt eine „By-Variable“ dar, dh es gibt separate Zählwerte für jede Ebene der By-Spalte zurück.
Unter dem Hilfemenü/JSL-Funktionen ist es dokumentiert (diese Syntaxindizes sind sehr hilfreich, manchmal umfassender als die Bücher oder Hilfeseiten und bieten gute Beispiele).
Skripterstellung mit mehreren TabellenEs funktioniert, nochmals vielen Dank.
Aus Neugier: Wenn ich „Col Number“ nachschlage, wird behauptet, dass es nur ein Argument benötigt und dass es die Anzahl der „nicht fehlenden“ Zeilen angibt. Offensichtlich gibt es einen Vergleich zwischen zwei Kräften, aber was genau macht es?
Skripterstellung mit mehreren TabellenCol Number mag keine zeichenformatierten Spalten, aber versuchen Sie diesen Trick:
Spaltennummer ( Hex zu Zahl ( Char zu Hex ( :Spalte ) ) , : Spalte )
Skripterstellung mit mehreren TabellenOh, das ist wunderbar, ich hatte die Spaltenstatistikformeln noch nicht herausgefunden – ich habe nur direkt Formeln innerhalb derselben Zeile erstellt.
Wenn man ein bisschen damit experimentiert, funktioniert es wunderbar für numerische Spalten. Gibt es eine Möglichkeit, dasselbe mit Zeichenspalten zu tun?
(Und ja, ich habe bereits ein Buch gekauft, aber es wird eine Weile dauern, bis ich es bei Amazon bekomme.)
Skripterstellung mit mehreren TabellenIn einem solchen Fall benötigen Sie kein Skript. Eine Spaltenformel würde genügen.
Probieren Sie diese Formel in RowsPerWeek aus:
Spaltennummer( :Woche, :Woche )
Skripterstellung mit mehreren TabellenVielen Dank für die schnelle Antwort.
Der Grund, warum ich Join vermeide, ist, dass ich dies gerne wiederholt für dieselbe Tabelle ausführen möchte, da mit der Zeit mehr Daten hinzugefügt werden.
Nachdem ich darüber nachgedacht habe, vermute ich jedoch, dass ich alles viel komplizierter mache als nötig.
Was ich wirklich möchte, ist, in meiner ursprünglichen Tabelle zu zählen, wie viele Zeilen für jede Woche vorhanden sind, und diese Gesamtzahl der Zeilen pro Woche dann in eine Spalte einzutragen.
Im Grunde würde es also so aussehen:
Woche, RowsPerWeek
5, 3
5, 3
5, 3
6, 1
7, 2
7, 2
Dies wäre ein Skript, das ich jedes Mal ausführen würde, wenn ich Daten zum Blatt hinzufüge, und das dann automatisch meine wöchentlichen Zeilen summiert und diese Spalte aktualisiert. Ich bin über eine Zusammenfassungstabelle dorthin gelangt und habe die Daten dann wieder in die ursprüngliche Tabelle eingefügt, aber es muss einen einfacheren Weg geben.
Skripterstellung mit mehreren TabellenEs ist einfacher, wenn Sie unterschiedliche Variablen auf die beiden Tabellen verweisen.
pf_dt = data table("Percent Fail");
rst_dt = data table("Run Summary Table");
So verwenden Sie diese Variablen:
für (i = 1, i <= nrows(pf_dt), i++,
one_week = Column(pf_dt, „Woche“) ;
one_total = Column(pf_dt, „N Zeilen“) ;
für (k = 1, k <= nrows(rst_dt), k++,
if (column(rst_dt, „Week“)== eine_Woche,
Column(rst_dt, „Läuft diese Woche“)= one_total;
);
);
);
Allerdings wäre es besser, einen JOIN-Befehl zu verwenden, um die beiden Tabellen zu verbinden.Verwenden Sie den Befehl „Tabellen“ > „Verbinden“, um eine neue Tabelle zu erstellen, und klicken Sie dann auf das rote Dreieck, um die verwendeten JSL-Befehle anzuzeigen.