Ich habe einen großen Datensatz, bei dem sich der Zyklus im Laufe der Zeit ändert. Ich möchte eine Spalte erstellen, die zu Beginn jedes Zyklus einen Index von 1 hat und weiterzählt, bis der nächste Zyklus beginnt, dann beginnt die Zählung wieder bei 0. Ich habe versucht, die unten gezeigten Zähl- und Sequenzfunktionen zu verwenden, aber ich stoße auf Probleme, wenn mein zweiter Zyklus mehr Werte hat als mein erster Zyklus (siehe Diagramm unten, wo die Zyklusbeobachtung der Wert ist, den die Formel erzeugen soll, und Spalte 109 ist der Wert.) vom Skript erzeugt.)
dt << Neue Spalte("Zyklusbeobachtung", Numerisch, Formel (If(
:Zyklus == 1, Sequenz( 0, 1080, 1 ),
:Zyklus == 2, Sequenz( 0, 1439, 1 ),
:Zyklus == 3, Sequenz( 0, 360, 1 ),
:Zyklus == 4, Sequenz( 0, 360, 1 ),
:Zyklus == 5, Sequenz( 0, 360, 1 ),
:Zyklus == 6, Sequenz( 0, 180, 1 ),
:Zyklus == 7, Sequenz( 0, 180, 1 ),
:Zyklus == 8, Sequenz( 0, 180, 1 ),
:Zyklus == 9, Sequenz( 0, 180, 1 ),
:Zyklus == 10, Sequenz( 0, 180, 1 ),
Sequenz( 0, 180, 1 )
)));

Wie @txnelson sagte, es gibt viele Lösungen in der Community für ähnliche Probleme.
Sie können Lag() verwenden, aber auch Col-Formeln können in Fällen wie diesen hilfreich sein:
Col Cumulative Sum(1, :Cycle)
Wenn Sie es um 1 verschieben müssen, können Sie der Formel nach Col Cumulative Sum() -1 hinzufügen.
In diesem speziellen Fall nicht unbedingt hilfreich, aber sehr hilfreiches Video von @brady_brady was höchstwahrscheinlich irgendwann nützlich sein wird:
Spezielle Formelspalten
Es gibt mehrere frühere Diskussionsbeiträge zu diesem Thema, aber da es sich um eine einfache Lösung handelt, habe ich ein weiteres Beispiel für Ihre spezielle Situation erstellt.
Beigefügt ist eine Datentabelle mit einer Formelspalte, die die gewünschten Werte berechnet

Die Formel ist
If( Row() == 1,
value = 1,
If( :Cycle != Lag( :Cycle ),
value = 1,
value
++)
);
value;
Während meine Lösung gut funktioniert, @jthi Lösung unten ist eine bessere Lösung.