Ho una domanda in due parti. Sto cercando di modificare il valore delle righe precedenti in una colonna in base ai dati di un'altra colonna e sto riscontrando un paio di problemi. Nell'esempio seguente, quando lo stato cambia da Status1 a qualsiasi altra cosa (nota celle verdi), voglio modificare il valore della cella 6 righe più in alto (cella rossa).

La formula di colonna che sto utilizzando è riportata di seguito.

Come puoi vedere dalla tabella, lo script inserisce un 99 in Row()-6 ma c'è anche un 99 in Row(). Non riesco a capire da dove venga l'ultimo.
Il problema più grande che sto cercando di risolvere qui è che voglio riempire tutte le celle al e sopra il cambio di stato con 99 (So Row(), Row()-1, Row()-2, ... , Row ()-6 tutti sono 99). Ho provato a utilizzare un ciclo FOR per farlo (vedi il secondo script di seguito) ma non fa nulla.

Come sicuramente puoi capire, sono piuttosto ignorante riguardo a JSL, quindi qualsiasi assistenza in merito sarebbe molto apprezzata. Grazie mille.
Dato che non ho la tua tabella dati, questa è solo una supposizione
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(23),
Compress File When Saved(1),
New Column("S",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "B", "B", "B", "C", "C"}
)
)
);
dt << New Column("R", Numeric, Continuous, Formula(
If(:S == "A" & Lag(:S, -6) != "A",
99
, :S == "A",
Lag(:R)
);
));
Puoi usare Lag per cercare valori dietro e anche in avanti.
Grazie, lo voglio sapere anch'io.
Grazie molte per l'aiuto! Non sapevo che potessi avere ritardi negativi. È molto utile.