Tengo un gran conjunto de datos donde el ciclo cambia con el tiempo. Me gustaría crear una columna que tenga un índice de 1 al comienzo de cada ciclo y continúe contando hasta que comience el siguiente ciclo, luego los conteos comienzan de nuevo en 0. He intentado usar las funciones de conteo y secuencia que se muestran a continuación, pero tengo problemas cuando mi segundo ciclo tiene más valores que mi primer ciclo (vea el diagrama a continuación, donde la observación del ciclo es el valor que quiero que produzca la fórmula y la Columna 109 es lo que es producido por el guión.)
dt << Nueva columna ("Observación de ciclo", Numérico, Fórmula (Si (
:Ciclo == 1, Secuencia( 0, 1080, 1 ),
:Ciclo == 2, Secuencia( 0, 1439, 1 ),
:Ciclo == 3, Secuencia( 0, 360, 1 ),
:Ciclo == 4, Secuencia( 0, 360, 1 ),
:Ciclo == 5, Secuencia( 0, 360, 1 ),
:Ciclo == 6, Secuencia( 0, 180, 1 ),
:Ciclo == 7, Secuencia( 0, 180, 1 ),
:Ciclo == 8, Secuencia( 0, 180, 1 ),
:Ciclo == 9, Secuencia( 0, 180, 1 ),
:Ciclo == 10, Secuencia( 0, 180, 1 ),
Secuencia (0, 180, 1)
)));

Como @txnelson dijo que hay muchas soluciones en la comunidad para problemas similares.
Puede usar Lag(), pero también las fórmulas Col pueden ser útiles en casos como estos:
Col Cumulative Sum(1, :Cycle)
Si necesita cambiarlo en 1, puede agregar -1 a la fórmula después de Col Cumulative Sum().
No necesariamente útil en este caso particular, pero un video muy útil de @brady_brady que muy probablemente será útil en algún momento:
Columnas de fórmulas especiales
Hay varias entradas de discusión anteriores sobre este tema, pero dado que es una solución fácil, he creado otro ejemplo para su situación específica.
Se adjunta una tabla de datos con una columna de fórmula que calcula los valores deseados

la fórmula es
If( Row() == 1,
value = 1,
If( :Cycle != Lag( :Cycle ),
value = 1,
value
++)
);
value;
Si bien mi solución funciona bien, @jthi La solución a continuación es una mejor solución.