特定の制限に達するまで累積合計を行うスクリプトDate、Test_Qty、Fail_Qtyの3つの列で始まるデータテーブル。
Cumulative_Sum_Test_QtyとCumulative_Fail_Qtyの2つの新しい列のスクリプトを作成しています。
Cumulative_Sum_Test_Qty列のテスト数量は、現在の行から前の行までの累計で、300数量を満たし、1つのロットのデータを形成します。
Cumulative_Sum_Fail_Qtyでは、失敗数量は、現在の行から前の行への累積合計であり、累積合計テストの数量に対応します。
両方の列の累積合計のスクリプトを作成するときに行き詰まります。
誰かがここで助けを提供できますか
スクリプティングRe:特定の制限に達するまで累積合計を行うスクリプトこれが解決策です。 300を超えるとすぐに再起動すると想定しています。 300を超える前に停止する必要がある場合、ロジックの変更は非常に簡単です。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Cumulative_Sum_Test_Qty" );
dt << New Column( "Cumulative_Sum_Fail_Qty" );
dt:Cumulative_Sum_Test_Qty[1] = dt:Test_Qty[1];
dt:Cumulative_Sum_Fail_Qty[1] = dt:Fail_Qty[1];
holdTest = dt:Test_Qty[1];
holdFail = dt:Fail_Qty[1];
For( theRow = 2, theRow <= N Rows( dt ), theRow++,
If( dt:Cumulative_Sum_Test_Qty[theRow - 1] > 300,
dt:Cumulative_Sum_Test_Qty[theRow] = dt:Test_Qty[theRow];
dt:Cumulative_Sum_Fail_Qty[theRow] = dt:Fail_Qty[theRow];
,
dt:Cumulative_Sum_Test_Qty[theRow] = dt:Cumulative_Sum_Test_Qty[theRow - 1] + dt:Test_Qty[theRow];
dt:Cumulative_Sum_Fail_Qty[theRow] = dt:Cumulative_Sum_Fail_Qty[theRow - 1] + dt:Fail_Qty[theRow];
)
);
Re:特定の制限に達するまで累積合計を行うスクリプトジムに感謝します。
私が必要なのは、300を超えた後です。次の行では、300を超えるまで新しい累積合計が再度行われます...
それは一種の後退する累積合計です..... これは私が行き詰まるところです。

Re:特定の制限に達するまで累積合計を行うスクリプトOK .....明確な定義に感謝します。 以下のスクリプトはテストデータで機能するようです
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Cumulative_Sum_Test_Qty" );
dt << New Column( "Cumulative_Sum_Fail_Qty" );
dt:Cumulative_Sum_Test_Qty[1] = dt:Test_Qty[1];
dt:Cumulative_Sum_Fail_Qty[1] = dt:Fail_Qty[1];
holdTest = dt:Test_Qty[1];
holdFail = dt:Fail_Qty[1];
For( theRow = 2, theRow <= N Rows( dt ), theRow++,
If( dt:Cumulative_Sum_Test_Qty[theRow - 1] > 300,
holdTest = :Test_Qty[theRow];
holdFail = :Fail_Qty[theRow];
curRow = theRow;
While( holdTest < 300,
curRow = curRow - 1;
holdTest = holdTest + :Test_Qty[curRow];
holdFail = holdFail + :Fail_Qty[curRow];
);
dt:Cumulative_Sum_Test_Qty[theRow] = holdTest;
dt:Cumulative_Sum_Fail_Qty[theRow] = holdFail;
,
dt:Cumulative_Sum_Test_Qty[theRow] = dt:Cumulative_Sum_Test_Qty[theRow - 1] + dt:Test_Qty[theRow];
dt:Cumulative_Sum_Fail_Qty[theRow] = dt:Cumulative_Sum_Fail_Qty[theRow - 1] + dt:Fail_Qty[theRow];
)
);