Script pour faire une somme cumulative 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 300 qty 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 cumulée.
Je suis bloqué lors de la création du script pour la somme cumulée pour les deux colonnes.
Quelqu'un peut-il fournir de l'aide ici
ScriptingRe: Script pour faire une somme cumulative 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];
)
);
Re: Script pour faire une somme cumulative jusqu'à atteindre une certaine limiteMerci Jim.
Ce dont j'avais besoin, c'est après avoir dépassé 300, dans la rangée suivante, une nouvelle somme cumulée a lieu à nouveau jusqu'à dépasser 300, ...
C'est une sorte de somme cumulative en mouvement vers l'arrière ..... C'est là que je suis coincé.

Re: Script pour faire une somme cumulative 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];
)
);