Create FormulaHello everyone,
how can I calculate column X_9 and X_10 with a formula?
For X_9:
While X_1 = X_1 -> X_7(Row1) -X_8 = X_9
X_9 - X_8
For X_10:
While X_1 = X_1 -> X_10(Row1)=X_9 - X_8
X_9 + X_8
Thank you very much for your help!
Betreff: Formel erstellenDiese Art von Frage wurde schon oft gestellt. Haben Sie in früheren Diskussionen zuerst nach Informationen gesucht, die Ihnen bei der Lösung dieses Problems helfen könnten?
Es ist unwahrscheinlich, dass eine Formel die verwendet Während() Funktion. Sie möchten wahrscheinlich die verwenden Wenn() Funktion. Siehe auch die Verzögerung() Funktion.
Funktionen werden dokumentiert. Bitte sehen Sie Hilfe> JMP-Dokumentationsbibliothek> Verwenden von JMP . Es gibt Kapitel, die Formeln und Funktionen gewidmet sind. Bitte sehen Sie auch Hilfe> Skriptindex . Stellen Sie diesen Browser auf Anzeige ein Funktionen (Pulldown-Menü oben links) und suchen Sie dann nach Wenn und Verzögerung .
Betreff: Formel erstellenEs tut mir leid, aber ich kann Ihre Notation nicht dahingehend interpretieren, was für X_0 und X_10 erforderlich ist. Können Sie es schriftlich erklären?Re: Create FormulaHello,
thank for your answer.
I hope you can understand it now.
Best regards.
As long as the rows in column X_1 do not change
-> should be calculated in column X_9 = X_7 minus X_8.
As long as the rows in column X_1 do not change
-> column X_8 is to be added to column X_10
Betreff: Formel erstellenHier ist meine Lösung: Die X__9-Formel lautet
If( Row() == 1, sumX__8 = 0 );
If( :X__1 != Lag( :X__1 ),
sumX__8 = 0
);
sumX__8 = sumX__8 + :X__8;
:X__7 - sumX__8;
Die X__10-Formel lautet
If( Row() == 1, theSum = 0 );
If( :X__1 != Lag( :X__1 ),
theSum = 0
);
theSum = theSum + :X__8;
theSum;
Im Anhang befindet sich eine Datentabelle mit den angewendeten Formeln
Re: Create FormulaHello,
this is really wonderful!!
Thank you very much for that!
I hope that I soon begin to understand how to use the formula
... and can do it by myself.
I wish you a pleasant evening/afternoon(?).
Re: Create FormulaHello, txnelson,
do I understand your formulas correctly?
The formula for X_9
if the Row = 1 then sum X_8 = 0
If X_1 is not equal(?!=Lag) to X_1 then sumX_8=0
otherwise sumX_8=sumX_8 + X_8
and X_7 - sumX_8
The formula for X_10
if Row=1 then theSum=0
if X_1 does not equal(?!=Lag) X_1
theSum=0
otherwise theSum=TheSum + X_8
Fill out theSum
Is this correctly interpreted?
A sunny greeting and stay healthy!
Re: Create Formula


This is wrong....
Hello I am trying to make the formula myself
How do I get the next If under it?
Thanks for your help.
Betreff: Formel erstellenIhre Interpretation von X__9 ist falsch. Lassen Sie mich versuchen zu erklären, wie es funktioniert.
Es müssen 3 Punkte über Formeln in JMP verstanden werden, die bei der Interpretation helfen
- JMP führt die Formel für jede Zeile in der Datentabelle aus, beginnend mit Zeile 1. Und die Funktion Row () gibt die Zeile zurück, in der sich JMP gerade befindet
- Sie können so viele Speichervariablen (dh sumX__8) erstellen, wie Sie möchten, und diese behalten ihren Wert, bis sie in der Formel von Zeile zu Zeile geändert werden. Dies ist einer der Schlüssel zur Formel. Diese Variable fasst die Werte von X__8 von Zeile zu Zeile zusammen, bis ein neuer X__1-Wert beobachtet wird. In diesem Fall wird sumX__8 auf 0 zurückgesetzt.
- Das Ergebnis der letzten Berechnung, die in einer Formel für eine bestimmte Zeile ausgeführt wurde, ist der Wert, der für die Zeile in der Datentabelle angezeigt wird.
Die Interpretation der Formel für Spalte X__9 lautet also:
Für Zeile 1
Wenn Row () gleich 1 ist, setzen Sie die Speichervariable sumX__8 auf 0. Dies ist wahr. Row () ist gleich 1, daher wird sumX__8 mit einem Wert von 0 initialisiert. Die Speichervariable sumX__8 wird verwendet, um die kumulative Summe von X__8 innerhalb der Gruppierung von X__1 zu berechnen.
Wenn der Wert von X__1 für Zeile 1 nicht dem vorherigen (Lag-) Wert von X__1 entspricht, setzen Sie den Wert von sumX__8 auf 0. Da es keinen vorherigen Wert für X__1 gibt, wird keine Berechnung durchgeführt. sumX__8 bleibt auf seinem aktuellen Wert, der 0 ist
Die nächste Zeile ( sumX__8 = sumX__8 +: X__8; ) wird nun ausgeführt, um die kumulative Summe für diese Zeile festzulegen. Dazu wird der aktuelle Wert von sumX__8 (0) verwendet und der X__8-Wert für Zeile 0 hinzugefügt, der für das Ergebnis 0 0 ist. Hinweis: Diese Codezeile ist nicht die Berechnung "Andernfalls" für die vorherige IF () - Funktion. Diese Codezeile wird für jede Zeile ausgeführt.
Die nächste Codezeile (: X__7 - sumX __ *) führt den Wert von X__7 in der Berechnungszeile 1 aus, der 20 ist, subtrahiert die kumulative Summe von X__7 (der Wert von sumX__8 ist 0) und ergibt einen Wert von 20-0 oder 20. Da dies die letzte Berechnung für Zeile 1 in der Formel ist, endet dieser Wert als Wert für Zeile 1 für X__9
Zeile 2
Row () ist ungleich 1, daher wird der Ergebniscode von sumX__8 = 0 nicht ausgeführt
Der Wert von Zeile 2 für X__1 ist 1000, was dem vorherigen Wert (Verzögerung) von X__1 entspricht, sodass der Ergebniscode nicht ausgeführt wird
sumX__8 wird für diese Zeile berechnet. Das Ergebnis ist der aktuelle Wert von sumX__8, der 0 ist, addiert zum Wert von X__8 in Zeile 2, der 0 für ein Ergebnis von 0 ist
Der Zeilenwert für X__9 wird als Wert für Zeile 2s von X__7 berechnet, der 20 ist, und subtrahiert den aktuellen Wert von sumX__8, der 0 ist, für einen resultierenden Wert von 20.
Dieser Vorgang wird von Zeile zu Zeile fortgesetzt. In Zeile 9 wird der erste Nicht-0-Wert von X__8 angezeigt, sodass der Wert von sumX__8 für einen Wert von 1 zu 0 + 1 wird. Zeile 10 fügt der sumX__8 usw. noch eine hinzu.
Die nächste signifikante Zeile ist Zeile 20. Während der Ausführung der Formel für diese Zeile ist die IF () - Funktion "If (: X__1! = Lag (: X__1)" wahr. : X__1 ist gleich 1001 und der vorherige (Verzögerungs-) Wert von X__1 ist 1000, daher wird der resultierende Code von sumX__8 auf 0 gesetzt, sodass die kumulative Summe von vorne beginnt.
Ihre Interpretation wird geändert in:
Die Formel für X_9
Wenn die Zeile = 1 ist, dann summiere X_8 = 0
Wenn X_1 ist ungleich dem vorherigen Wert von X_1 dann sumX_8 = 0
sumX_8 = sumX_8 + X_8
X__9 wird zu X_7 - sumX_8 berechnet
Die Formel für X__10 ist so ziemlich die gleiche wie für X__9, also verwenden Sie Ihre Interpretation mit meinen Modifikationen
Die Formel für X_10
Wenn Row = 1, dann ist theSum = 0
wenn X_1 tut ungleich dem vorherigen Wert von X_1 theSum = 0
theSum = TheSum + X_8
X__10 wird durch Referenzieren des Werts der Variablen theSum festgelegt
Betreff: Formel erstellenKomplexe Formeln lassen sich mit dem Formelersteller nur schwer erstellen. Meine Faustregel lautet also: Wenn Sie mehrere Berechnungszeilen haben, verwende ich den Skripteditor im Formula Creator.
Wenn Sie auf das Feld mit der Aufschrift "keine Formel" doppelklicken

Sie sehen ein Eingabefeld, in das Sie eine einzelne Zeile oder mehrere Zeilen eingeben können

Wenn Sie jedoch auf das Objekt in der oberen rechten Ecke des Felds klicken

Der Skript-Editor wird angezeigt, in dem Sie das gesamte Skript einfach eingeben können
