J'ai une question en deux parties. J'essaie de modifier la valeur des lignes précédentes dans une colonne en fonction des données d'une autre colonne et j'ai quelques problèmes. Dans l'exemple ci-dessous, lorsque le statut passe de Status1 à autre chose (notez les cellules vertes), je souhaite modifier la valeur de la cellule 6 lignes vers le haut (cellule rouge).

La formule de colonne que j'utilise est ci-dessous.

Comme vous pouvez le voir dans le tableau, le script insère un 99 dans Row()-6 mais il y a aussi un 99 dans Row(). Je n'arrive pas à comprendre d'où vient ce dernier.
Le plus gros problème que j'essaie de résoudre ici est que je veux remplir toutes les cellules au niveau et au-dessus du changement de statut avec 99 (Donc Row(), Row()-1, Row()-2, ... , Row ()-6 valent tous 99). J'ai essayé d'utiliser une boucle FOR pour ce faire (voir le deuxième script ci-dessous) mais cela ne fait rien.

Comme vous pouvez le constater, je suis sûr que je suis assez ignorant en ce qui concerne JSL, donc toute aide à ce sujet serait grandement appréciée. Merci beaucoup.
Merci beaucoup pour l'aide! Je ne savais pas qu'il pouvait y avoir des décalages négatifs. C'est très pratique.
Comme je n'ai pas votre tableau de données, ce n'est qu'une supposition
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)
);
));
Vous pouvez utiliser Lag pour rechercher des valeurs derrière et également vers l'avant.
Merci, je veux aussi le savoir.