Hallo zusammen,
Ich möchte die Zeilen meiner Datentabelle auf eine allgemeine Weise vergleichen. Dazu möchte ich eine Formelspalte erstellen, die einen Wert aus einer bestimmten Zeile mit bestimmten Merkmalen findet und zurückgibt.
sowiakg_1-1788989884725.pngsowiakg_1-1788989884725.pngsowiakg_1-1788989884725.png
In diesem Beispiel-Screenshot möchte ich, dass die Spalte „Kontrollergebnis“ eine Formelspalte ist, die die Zeile „Kontrolle“ mit einem übereinstimmenden Feld „Spender“ zurückgibt und den entsprechenden „Ergebnis“-Wert anzeigt. Ich möchte dafür den Formel-Editor verwenden, und die intuitivste Methode, die mir einfällt, um Daten aus einer anderen Zeile abzurufen, ist die Verwendung von Subscript.
Ich bin mir jedoch nicht sicher, wie ich die Logik für „i = (niedrigste) Zeile mit übereinstimmender Gruppe und Bedingung='Control'“ korrekt umsetzen soll. Welcher Formelblock (oder welche Kombination davon) kann verwendet werden, um „i = die Zeilennummer, die X Bedingungen erfüllt“ zurückzugeben? Gibt es hier möglicherweise auch einen Trick mit der Variable „byVar“, den ich verwenden sollte?
Nebenbei bemerkt: Ich weiß, dass die Funktion „Vergleichen“ eine weitere Option ist. Allerdings scheint es erforderlich zu sein, die Werte für „Steuerung“ direkt im Formelblock (oder mithilfe benutzerdefinierter Subscript-Aufrufe) für jede Gruppe anzugeben. Ich versuche, diesen Workflow auf einen wesentlich größeren Datensatz anzuwenden und möchte daher fest codierte Werte möglichst vermeiden. Da ich mit vielen Mitarbeitern zusammenarbeite, die keine Programmierkenntnisse haben, möchte ich JSL vermeiden und die Bedingungs- und Ergebnisfelder nur bei Bedarf im Formeleditor austauschen.
Danke schön!
Hier ist die Formel, die ich entwickelt habe:
Col Cumulative Sum( If( :Condition == "Control", :Result ), :Group )
txnelson_0-1789008517877.pngtxnelson_0-1789008517877.png
Die Funktion `Col At()` wurde in JMP19 eingeführt und ermöglicht die Suche nach Werten bestimmter Indizes innerhalb von Gruppen. Sie können diese Funktion beispielsweise verwenden, wenn die Kontrollzeilen immer vor den Testzeilen stehen (Spalte 3 enthält das Ergebnis und Spalte 1 die Gruppe).
Col At(:Column 3, 1, :Column 1)
jthi_0-1789014294613.png
Im Scripting Index finden Sie weitere Beispiele.