Wie erhalte ich nicht leere Zeilenwerte, die ausgewählten Beschriftungen aus Spalten entsprechen?Ich habe eingehende Daten des Formulars wie beigefügt.
Ich möchte die ersten drei Zeilenwerte jeder Spalte (rot eingekreist) abrufen, die für bestimmte Beschriftungen angezeigt werden.
Das Folgende funktioniert für Strom, aber nicht für Spannung (für Spannung erhalte ich leere Werte, was ich verstehe, warum)
Stage = "7"; resCol = "Current";
theLSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]]; show (theLSL);
theUSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "USL" ))[1]]; show (theUSL);

Automatisierung und SkripterstellungWindowsBetreff: Wie erhalte ich nicht leere Zeilenwerte, die ausgewählten Beschriftungen aus Spalten entsprechen?Sie können mit IsMissing() eine zusätzliche Prüfung hinzufügen.
... & !IsMissing(Column(dt, resCol)[])
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die ausgewählten Beschriftungen aus Spalten entsprechen?@jthi Danke.
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die ausgewählten Beschriftungen aus Spalten entsprechen?Es handelt sich um eine weitere Suchbedingung für Ihre << get rows where
dt << get rows where(:TestStage == Stage & :label == "USL" & !Is Missing(Column(dt, resCol)[]))
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die ausgewählten Beschriftungen aus Spalten entsprechen?Die geschriebene JSL gibt nur den Wert der ersten übereinstimmenden Zeile zurück.Während
dt << get rows where( :TestStage == Stage & :label == "LSL" )
Gibt eine Matrix aller gefundenen übereinstimmenden Zeilen zurück, wenn der Index von [1] hinzugefügt wird
(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]
Es gibt nur die Zeilennummer der ersten gefundenen Zeile zurück, die in Ihrem Beispiel einen fehlenden Wert zurückgibt.
@jthi Jarmo schlägt vor, eine weitere Klarstellung hinzuzufügen, um fehlende Werte zu beseitigen, die Ihre Get Rows Where() in ändern würden
(dt << get rows where( :TestStage == Stage & :label == "LSL" & !IsMissing(Column(dt, resCol) ) )[1]
Dies ist eine gute Lösung, wenn Sie nur nach dem ersten nicht fehlenden Wert suchen.Wenn Ihre Daten jedoch möglicherweise mehrere Zeilen mit nicht fehlenden LSL-Werten enthalten, möchten Sie möglicherweise nicht, dass der erste nicht fehlende Wert gefunden wird.Möglicherweise möchten Sie beispielsweise den maximalen USL-Wert oder den mittleren USL-Wert aller zurückgegebenen nicht fehlenden Zeilen ermitteln.Du könntest so etwas tun
theUSL = dt << get rows where( :TestStage == Stage & :label == "LSL" & !Is Missing( Column( dt, resCol ) ) );
USLMat = [];
For Each( {foundRow, index}, theUSL, USLMat = USLMat || Column( dt, resCol )[index] );
theUSL = Mean( USLMat );
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die ausgewählten Beschriftungen aus Spalten entsprechen?Ich versuche das Gleiche zu tun, und zwar in meinem Fall
dt << Get Rows Where(:A == "AAA")
gibt eine Liste mit einem Element.
Also muss ich verwenden
:B[(dt << Get Rows Where(:A == "AAA"))[1]]
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die den ausgewählten Beschriftungen aus den Spalten entsprechen?@miguello , gibt es eine Frage?
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die den ausgewählten Beschriftungen aus den Spalten entsprechen?Ich denke nicht. Ich würde nur gerne verstehen, welches Verhalten richtig ist und warum @Neo und ich es auf eine Art haben und Sie auf eine andere?
Wovon hängt es ab, ob es eine Matrix oder eine Einzelelementliste mit Matrix gibt?
Betreff: Wie erhalte ich nicht leere Zeilenwerte, die den ausgewählten Beschriftungen aus den Spalten entsprechen?Wenn Sie vom Aufruf „Get Rows Where()“ nur 1 Zeile zurückgeben, besteht kein bedeutender Unterschied.