Script per fare la somma cumulativa fino a raggiungere un certo limiteLa mia tabella di dati che 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, la quantità di test è la somma cumulativa dalle righe correnti alla riga precedente per soddisfare 300 qty per formare un lotto di dati.
In Cumulative_Sum_Fail_Qty, la quantità di errore è la somma cumulativa dalla riga corrente alle righe precedenti corrispondenti alla quantità di test della somma cumulativa eseguita.
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 limiteEcco una soluzione. Suppongo che non appena superi i 300 riavvii. Se devi fermarti prima di superare i 300, la modifica della 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];
)
);
Ri: Script per fare la somma cumulativa fino a raggiungere un certo limiteGrazie Jim.
Quello di cui avevo bisogno è dopo aver superato i 300, nella riga successiva, la nuova somma cumulativa si ripete fino a superare i 300, ...
È una specie di somma cumulativa mobile all'indietro ... È qui che rimango bloccato.

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 di 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];
)
);