Hallo,
Ich brauche hier eine Anleitung....
Ich habe zwei Spalten (per_Change) und Step (es sind formelbasierte Werte) und die Spalte Per_Change ist von -ve bis +ve Werten sortiert.
In meinem Skript muss ich die maximale Anzahl von Zeilen kennen, also habe ich eine Rangspalte von 1 bis 14 erstellt (aufsteigende Reihenfolge wie im angehängten Bild) und muss mindestens 8 Zeilen haben (beginnend mit dem höchsten Rang).
Schritte:
1. Schließen Sie -ve-Werte in der Spalte „Per_Change“ aus
2. Dann basiert Col Step auf einer Formel und erstellt einige „-ve“- und „+ve“- und einige „null“-Werte. Alle -ve-Werte im col-Schritt ausblenden und ausschließen. Die Nullwerte wurden bereits basierend auf Col Per_Change ausgeblendet und ausgeschlossen, da die Formel -ve-Werte generiert.
3. Meine Anforderung ist, mindestens 8 Werte zu haben (absteigende Reihenfolge). In meinem Beispiel gibt es 6 eindeutige Zeilenzustände (Rang 9–14) (2 zusätzliche Zeilen sollten absteigend sein, d. h. Rang 8 und 7 ein-/ausblenden, sollten aber in einem Szenario keine „Null“-Werte enthalten, wenn es mehr und weniger Nullwerte gibt -ve- oder +ve-Werte in Spalte Schritt).
Schritt 1 und 2: Ich kann ein JSL-Skript ausführen, habe aber Probleme beim Aktivieren von zwei zusätzlichen Zeilen.
Ich habe versucht, die Verzögerungsfunktion zu verwenden und auch Dummy-Spalten zu erstellen, um sie in umgekehrter Reihenfolge zu aktivieren, aber es fällt mir schwer, die Auswahl zusätzlicher Zeilen aufzuheben.
.
Danke schön!
Vielen Dank für die schnelle Antwort...es funktioniert!
CG, ich habe eine Datentabelle mit dem Namen PerChangeExample angehängt, um Ihr Beispiel zu emulieren.
Probieren Sie dieses Skript aus
Names Default to Here(1);
dt = Data Table("PerChangeExample");
dt << select where(:Per_change < 0 | IsMissing(:Per_change) );
dt << exclude(1) << hide(1);
dt << select where(:Step < 0 | IsMissing(:Step) );
dt << exclude(1) << hide(1);
dt << clear select;
nexcl = nrow( dt << get excluded rows() );
if ( nrow(dt) - nexcl < 8,
for(i = nexcl, i > nrow(dt) -8 , i--,
if ( !IsMissing(:Step[i]),
dt << Select Rows(i);
dt << Exclude(0) << Hide(0);
dt << clear select;
)
); //end for i
); // end if
nexcl = nrow( dt << get excluded rows() );
if ( nrow(dt) - nexcl < 8, throw() ); //stop program execution if still not enough data.