脚本进行累计和直到达到一定限制我的数据表从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];
)
);