腳本進行累計和直到達到一定限制我的數據表從3列開始,即Date,Test_Qty和Fail_Qty。
我正在為2個新列(Cumulative_Sum_Test_Qty和Cumulative_Fail_Qty)創建腳本。
在Cumulative_Sum_Test_Qty列中,測試數量是從當前行到上一行的累積總和,以滿足300個數量以形成一組數據。
在Cumulative_Sum_Fail_Qty中,失敗數量是從當前行到先前行的累積總和,與發生累積總和測試數量相對應。
當創建兩個列的累加和的腳本時,我陷入了困境。
任何人都可以在這裡提供幫助
腳本編寫回复:腳本做累計總和直到達到一定限制這是一個解決方案。 我假設一旦您超過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];
)
);
回复:腳本做累計總和直到達到一定限制謝謝吉姆。
我需要的是超過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,
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];
)
);