2 つの部分からなる質問があります。別の列のデータに基づいて列の前の行の値を変更しようとしていますが、いくつかの問題が発生しています。以下の例では、ステータスが Status1 から他のステータスに変化したとき (緑色のセルに注目)、6 行上のセル (赤色のセル) の値を変更したいと考えています。

私が使用している列の式は次のとおりです。

表からわかるように、スクリプトは Row()-6 に 99 を挿入しますが、Row() にも 99 があります。最後の言葉がどこから来たのか分かりません。
ここで解決しようとしている大きな問題は、ステータス変更以上のすべてのセルを 99 で埋めたいということです (つまり、 Row()、Row()-1、Row()-2、...、Row ()-6はすべて99)。これを行うために FOR ループを使用しようとしましたが (以下の 2 番目のスクリプトを参照)、何も起こりません。

ご存知かと思いますが、私は JSL についてはほとんど無知なので、これに関するサポートをいただければ幸いです。どうもありがとう。
データテーブルがないので、これは単なる推測です
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)
);
));
ラグを使用すると、前後の値を探すこともできます。
助けてくれてありがとう!マイナスのラグが発生する可能性があるとは知りませんでした。それはとても便利です。