Script per fare la somma cumulativa fino a raggiungere un certo limiteLa mia tabella di dati inizia con 3 colonne, Date, Test_Qty e Fail_Qty.
Sto creando uno script per 2 nuove colonne, Cumulative_Sum_Test_Qty e Cumulative_Fail_Qty.
Nella colonna Cumulative_Sum_Test_Qty, il test qty è la somma cumulativa dalle righe correnti alla riga precedente per soddisfare 300 qty per formare un lotto di dati.
In Cumulative_Sum_Fail_Qty, il fail qty è la somma cumulativa dalla riga corrente alle righe precedenti corrispondenti alla somma cumulativa del test qty.
Rimango bloccato durante la creazione dello script per la somma cumulativa per entrambe le colonne.
Qualcuno può fornire aiuto qui
ScriptingRi: Script per fare la somma cumulativa fino a raggiungere un certo limiteGrazie Jim. Funziona.
Studio la logica della sceneggiatura che hai fornito. Questo mi aiuta a migliorare le mie conoscenze.
Apprezzo il tuo aiuto e la tua guida.
Grazie.
Ri: Script per fare la somma cumulativa fino a raggiungere un certo limiteOK..... apprezzo la definizione più chiara.Lo script seguente sembra funzionare sui dati del 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];
)
);
Ri: Script per fare la somma cumulativa fino a raggiungere un certo limiteGrazie Jim.
Quello di cui avevo bisogno è che dopo aver superato i 300, nella riga successiva, si ripeta una nuova somma cumulativa fino a superare i 300,...
È una specie di somma cumulativa in movimento all'indietro.....Qui mi blocco.

Ri: Script per fare la somma cumulativa fino a raggiungere un certo limiteEcco una soluzione.Presumo che non appena superi i 300 riavvii.Se devi fermarti prima di superare i 300, il cambio di logica è piuttosto semplice.
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];
)
);