So erweitern Sie eine Zeilenauswahl aus einer If-AnweisungWie erweitere ich eine Zeilenauswahl aus einer if-Anweisung auf dieselben Gruppierungswerte aus einer anderen Spalte? Im Fall der angehängten Datei wird Zeile 7 ausgewählt mit:
dt << select where (:D1 > 1);
Die Auswahl sollte sich auf alle Gruppierungswerte aus Spalte G1 erstrecken, die in diesem Fall alle „B“ sind.
Betreff: Wie erweitere ich eine Zeilenauswahl aus einer If-AnweisungIch empfehle dringend, dass Sie sich die Zeit nehmen, die JSL-Dokumentation im Scripting Guide zu lesen, wenn Sie weiterhin JMP und JSL verwenden möchten
Hilfe==>Bücher==>Scripting GuideBetreff: Wie erweitere ich eine Zeilenauswahl aus einer If-AnweisungIch frage nach einer Formelspalte, weil die Daten von SQL aktualisiert werden. Eine bestehende Formelspalte mit Indexnummern wird automatisch mit den neuen Daten aktualisiert.
Betreff: Wie erweitere ich eine Zeilenauswahl aus einer If-AnweisungIch bin mir nicht sicher, was Sie mit einer Formelversion machen wollen.Das heißt, welche Werte erwarten Sie in der neuen Spalte, aber unten ist meine Vermutung, was Sie tun möchten.
Zu Ihrer Information, die Formelversion ist nicht so effizient wie die Skriptversion, da sie für jede Zeile einmal ausgeführt werden muss.
If( Row() == 1,
dt = Current Data Table();
d1Rows = dt << get rows where( :D1 > 1 );
g1Values = {};
If( N Rows( d1Rows ) > 0,
For( i = 1, i <= N Rows( d1Rows ), i++,
Insert Into( g1Values, dt:G1[d1Rows[i]] )
)
);
);
If( Contains( g1Values, :G1 ),
x = 1;
Row State( Row() ) = Selected State( 1 );
,
x = 0
);
x;
Hier ist das Datentabellenskript mit der angewendeten Formel
New Table( "IfSelRows",
Add Rows( 15 ),
Compress File When Saved( 1 ),
New Column( "G1",
Character( 1 ),
"Nominal",
Set Values(
{"A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C",
"C"}
),
Set Display Width( 76 )
),
New Column( "D1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0] ),
Set Display Width( 58 )
),
New Column( "Column 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1,
dt = Current Data Table();
d1Rows = dt << get rows where( :D1 > 1 );
g1Values = {};
If( N Rows( d1Rows ) > 0,
For( i = 1, i <= N Rows( d1Rows ), i++,
Insert Into( g1Values, dt:G1[d1Rows[i]] )
)
);
);
If( Contains( g1Values, :G1 ),
x = 1;
Row State( Row() ) = Selected State( 1 );
,
x = 0
);
x;
)
)
)Betreff: Wie erweitere ich eine Zeilenauswahl aus einer If-AnweisungNochmals vielen Dank für den Code. Es funktioniert wie vorgesehen. Was muss geändert oder dem Code hinzugefügt werden, um ihn als Formelspalte zu verwenden?
@txnelson schrieb:
Es gibt ein paar verschiedene Interpretationen Ihrer Frage, aber ich hoffe, dass die, die ich löse, die richtige ist.Werfen Sie einen Blick auf mein Skript und sagen Sie mir, ob es das ist, woran Sie gedacht haben
Names Default To Here( 1 );
dt = New Table( "IfSelRows",
Add Rows( 15 ),
Compress File When Saved( 1 ),
New Column( "G1",
Character( 1 ),
"Nominal",
Set Values( {"A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C"} ),
Set Display Width( 76 )
),
New Column( "D1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0] ),
Set Display Width( 58 )
)
);
// Get the rows where D1 > 1
d1Rows = dt << get rows where( :D1 > 1 );
// Create a list with the values of G1 for the rows that have been selected
g1Values = {};
If( N Rows( d1Rows ) > 0,
For( i = 1, i <= N Rows( d1Rows ), i++,
Insert Into( g1Values, dt:G1[d1Rows[i]] )
)
);
// Select the rows where any of the values in the g1List exist
dt << select where(contains(g1Values,:G1));Nochmals vielen Dank für den Code. Es funktioniert wie vorgesehen. Was muss geändert oder dem Code hinzugefügt werden, um ihn als Formel zu verwenden?
Betreff: Wie erweitere ich eine Zeilenauswahl aus einer If-AnweisungDanke Jim für deine schnelle Antwort. Du hast meine Frage richtig gestellt. Ihr Skript liefert genau das, wonach ich gesucht habe.
Betreff: Wie erweitere ich eine Zeilenauswahl aus einer If-AnweisungEs gibt ein paar verschiedene Interpretationen Ihrer Frage, aber ich hoffe, dass die, die ich löse, die richtige ist.Schauen Sie sich mein Skript an und sagen Sie mir, ob es das ist, woran Sie gedacht haben
Names Default To Here( 1 );
dt = New Table( "IfSelRows",
Add Rows( 15 ),
Compress File When Saved( 1 ),
New Column( "G1",
Character( 1 ),
"Nominal",
Set Values( {"A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C"} ),
Set Display Width( 76 )
),
New Column( "D1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0, 0] ),
Set Display Width( 58 )
)
);
// Get the rows where D1 > 1
d1Rows = dt << get rows where( :D1 > 1 );
// Create a list with the values of G1 for the rows that have been selected
g1Values = {};
If( N Rows( d1Rows ) > 0,
For( i = 1, i <= N Rows( d1Rows ), i++,
Insert Into( g1Values, dt:G1[d1Rows[i]] )
)
);
// Select the rows where any of the values in the g1List exist
dt << select where(contains(g1Values,:G1));