Überprüfen Sie, ob mehrere Spaltenwerte in den Bereich fallenBeispieltabelle:
Teil Test 1 Test 2 Test 3 Test 4 A 0,2 0,4 0,3 0,1 B 0,2 0,3 0,4 0,6 C 0,7 0,1 0,2 0,4Ich möchte dieser Tabelle eine Spalte hinzufügen, die jeden Wert in den Spalten Test 1-Test 4 auswertet, und wenn alle in einen Bereich fallen, um "Ja" auszugeben.
Wenn mein Bereich beispielsweise 0 < Werte < 0,5 wäre, würde die Ausgabe so aussehen (ich habe fehlerhafte Werte rot hervorgehoben)
Teil Prüfung 1 Prüfung 2 Prüfung 3 Prüfung 4 ja/nein A 0,2 0,4 0,3 0,1 ja B 0,2 0,3 0,4 0,6 nein C 0,7 0,1 0,2 0,4 neinGibt es eine einfache Möglichkeit, dies mit JSL zu erreichen?
Betreff: Überprüfen Sie, ob mehrere Spaltenwerte in den Bereich fallen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />hallo hooshies,
Um Ihre genaue Frage zu beantworten, kann das folgende Skript dies tun.
Eine allgemeinere Lösung hängt von dem Aspekt ab, der generalisiert werden muss (dh mehr Spalten, unterschiedliche Bereiche für verschiedene Spalten und ob Sie möchten, dass es in einer Spaltenformel oder nur einmal von jsl berechnet wird).
dt = Neue Tabelle ( "Datenquelle" ,
Zeilen hinzufügen ( 3 ) ,
Neue Spalte ( "Teil" , Charakter , Nominal , Werte einstellen ( { "A" , "B" , "C" } ) ) ,
Neue Spalte ( "Prüfung 1" , Werte einstellen ( [ 0,2 , 0,2 , 0,7 ] ) ) ,
Neue Spalte ( "Prüfung 2" , Werte einstellen ( [ 0,4 , 0,3 , 0,1 ] ) ) ,
Neue Spalte ( "Prüfung 3" , Werte einstellen ( [ 0,3 , 0,4 , 0,2 ] ) ) ,
Neue Spalte ( "Prüfung 4" , Werte einstellen ( [ 0,1 , 0,6 , 0,4 ] ) ) ,
) ;
dt << Neue Spalte ( "Ja Nein" ,
Charakter ,
Nominal ,
Formel (
Wenn (
Maximal (
Abs ( : Prüfung 1 ) ,
Abs ( : Prüfung 2 ) ,
Abs ( : Prüfung 3 ) ,
Abs ( : Prüfung 4 )
) > 0,5 ,
"NEIN" ,
"Ja"
)
)
) ;
Betreff: Prüfen Sie, ob mehrere Spaltenwerte in den Bereich fallen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ron,
Danke für deine Antwort. Das von Ihnen bereitgestellte Skript erledigt die Arbeit in dieser Situation, aber ich hätte gerne eine robustere/allgemeinere Lösung (z. B. wenn die Grenzen meiner Testkriterien 0,23 < Testwerte < 0,5 sind).
Gibt es eine Möglichkeit, eine Spaltenformel festzulegen oder eine Lösung zu skripten, bei der mehrere Spalten als Array behandelt werden?Im Pseudocode:
untere_grenze = 0,23
obere_grenze = 0,5
Wenn untere_Grenze < [Spalte(2), Spalte(3), Spalte(4), Spalte(5)] < obere_Grenze
Anzeige "Ja"
Anders
Anzeige "Nein"
Der Pseudocode hier würde jeden Wert in den Spalten 2-5 einzeln gegen die Grenzwerte testen und "Ja" ausgeben, wenn alle im Bereich sind.
Mehrere UND/ODER-Anweisungen würden dies erreichen, scheinen aber ein elementarer Ansatz zu sein.
Danke!
Betreff: Prüfen Sie, ob mehrere Spaltenwerte in den Bereich fallen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ron_horne Die Methode von kann verallgemeinert werden. Der Schlüssel ist zu erkennen, dass die Minimum()- und Maximum()-Funktionen geben den Min/Max-Wert ihrer Argumente zurück. So wie Sie es darstellen, kann der Vergleich geschrieben werden:
Minimum( :Test 1, :Test 2, :Test 3, :Test 4 ) > 0.23 &
Maximum( :Test 1, :Test 2, :Test 3, :Test 4 ) < .5;
-Jeff
Betreff: Überprüfen Sie, ob mehrere Spaltenwerte innerhalb des Bereichs liegen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Neue Spalte("In Reichweite?", Formel(
Wenn(
Min( :Test 1, :Test 2, :Test 3, :Test 4 ) > 0 &
Max( :Test 1, :Test 2, :Test 3, :Test 4 ) < 0,5,
"Ja",
"NEIN"
)
)