Script pour faire une somme cumulée jusqu'à atteindre une certaine limiteMa table de données commençant par 3 colonnes, Date, Test_Qty et Fail_Qty.
Je crée un script pour 2 nouvelles colonnes, Cumulative_Sum_Test_Qty et Cumulative_Fail_Qty.
Dans la colonne Cumulative_Sum_Test_Qty, la quantité de test est la somme cumulée des lignes actuelles à la ligne précédente pour atteindre la quantité de 300 pour former un lot de données.
Dans Cumulative_Sum_Fail_Qty, la quantité d'échec est la somme cumulée de la ligne actuelle aux lignes précédentes correspondant à la quantité de test de somme cumulée.
Je suis bloqué lors de la création du script pour la somme cumulée des deux colonnes.
Quelqu'un peut-il fournir de l'aide ici
ScriptRe : Script pour effectuer une somme cumulée jusqu'à atteindre une certaine limiteMerci Jim. Ça marche.
J'étudie la logique de script que vous avez fournie. Cela me permet d'approfondir mes connaissances.
J'apprécie votre aide et vos conseils.
Merci.
Re : Script pour effectuer une somme cumulée jusqu'à atteindre une certaine limiteOK..... J'apprécie la définition plus claire.Le script ci-dessous semble fonctionner sur vos données de test
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];
)
);
Re : Script pour effectuer une somme cumulée jusqu'à atteindre une certaine limiteMerci Jim.
Ce dont j'avais besoin, c'est qu'après avoir dépassé 300, dans la rangée suivante, une nouvelle somme cumulée a de nouveau lieu jusqu'à dépasser 300, ...
C'est une sorte de somme cumulée vers l'arrière .....C'est là que je coince.

Re : Script pour effectuer une somme cumulée jusqu'à atteindre une certaine limiteVoici une solution.Je suppose que dès que vous dépassez 300, vous redémarrez.Si vous devez vous arrêter avant de dépasser 300, le changement de logique est assez simple.
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];
)
);