Hallo - ich brauche Hilfe, um eine Formel zu setzen, um eine neueste Zeile basierend auf Bedingungen zu finden und einen anderen Spaltenwert abzurufen / Berechnungen zwischen zwei Zeilenparametern (DateTime) durchzuführen.
Die folgende Datentabelle (ebenfalls beigefügt) enthält: Asset-, DateTime-, Discrete- und Action-Spalten.
Die Daten werden zuerst nach Asset und dann nach DateTime (aufsteigend) sortiert.
Es gibt auch eine Tabellenvariable days_threshold = 4.
Action(Desired) ist die gewünschte Aktionsform, in der die aktuelle Formel

geändert werden muss.
Jede Zeile, die a erhält Diskret = 1 (was normalerweise durch eine Formelregel bestimmt wird, die hier übersprungen und stattdessen Beispielwerte bereitgestellt werden) , Aktion muss anfangen, nach seinen eigenen vorherigen Zeilen zu suchen (in Terminzeit absteigende Form). Zwei Bedingungen in dieser Suche sind:
1- Auf der Suche nach dem gleichen Anlage wofür Diskret =1 (also entweder XY01 oder XY02)
2- Suchen Sie bis zum letzten Wert von Aktion = 1 gefunden .
Berechnen Sie die Anzahl der Tage zwischen dem letzten Mal, als Aktion 1 war, im Vergleich zu DateTime der aktuellen Zeile.
Wenn die Differenz (in Tagen) >= days_threshold = 4 ---> dann Aktion der aktuellen Zeile = 1
Sonst, wenn die Differenz (in Tagen) < days_threshold ---> dann Aktion der aktuellen Zeile = 0
Nur daran interessiert, den letzten Zeitpunkt zu finden, an dem Aktion "1" war ... Sobald dieser einzelne Wert gefunden ist (falls vorhanden), kann die Suche an diesem Punkt anhalten. Die Suche ist begrenzt bis zum ersten Auftreten dieses Assets (d. h. ältester Datensatz). Wenn die Aktion zuvor nie auf "1" gesetzt wurde, kann die Aktion der aktuellen Zeile auf "1" gesetzt werden.
z. B. ist Zeile 2 das erste Mal, dass XY01 Action =1 erhält (basierend auf Discrete, das selbst an einige Regeln gebunden ist, in diesem Beispiel nur mit Werten).
Als nächstes wird in Zeile 3 Discrete wieder auf 1 gesetzt, aber dieses Mal muss Action 0 sein, da die Anzahl der Tage zwischen der vorherigen und der aktuellen Zeile 0 ist (< days_threshold).
In ähnlicher Weise bleibt Aktion für Zeile 5 immer noch 0, da nur 3 Tage vergangen sind, seit Aktion 1 war.
Schließlich wird Action in Zeile 6 auf "1" gesetzt.
Vorausgesetzt, dass zwei Assets dieser Idee folgen, legen Sie die gewünschten Werte auf Action(Desired) fest.
Ich ziehe es vor, dass dies eine Formel und kein Skript ist.
Vielen Dank im Voraus JMP-Team.
Altug Bayram
