Skript zum Ausführen einer kumulativen Summe, bis ein bestimmtes Limit erreicht istMeine Datentabelle beginnt mit 3 Spalten, Date, Test_Qty und Fail_Qty.
Ich erstelle ein Skript für 2 neue Spalten, Cumulative_Sum_Test_Qty und Cumulative_Fail_Qty.
In der Spalte Cumulative_Sum_Test_Qty ist die Testmenge die kumulative Summe der aktuellen Zeilen zur vorherigen Zeile, um die 300-Menge zu erfüllen, um ein Datenlos zu bilden.
In Cumulative_Sum_Fail_Qty ist die Fehlermenge eine kumulative Summe von der aktuellen Zeile zu den vorherigen Zeilen, die der kumulativen Summentestmenge entspricht, die stattfindet.
Ich stecke fest, wenn ich das Skript für die kumulative Summe für die beiden Spalten erstelle.
Kann hier jemand Hilfestellung geben
SkripterstellungBetreff: Skript zum Ausführen einer kumulativen Summe, bis ein bestimmtes Limit erreicht istDanke Jim. Es klappt.
Ich studiere die von Ihnen bereitgestellte Skriptlogik. Dies hilft mir, mein Wissen zu erweitern.
Ich schätze Ihre Hilfe und Anleitung.
Vielen Dank.
Betreff: Skript zum Ausführen einer kumulativen Summe, bis ein bestimmtes Limit erreicht istOK ... Ich schätze die klarere Definition.Das folgende Skript scheint mit Ihren Testdaten zu funktionieren
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];
)
);
Betreff: Skript zum Ausführen einer kumulativen Summe, bis ein bestimmtes Limit erreicht istDanke Jim.
Was ich brauchte, ist, nachdem ich über 300 gegangen bin, in der folgenden Reihe, eine neue kumulative Summe, die erneut stattfindet, bis ich über 300 gehe, ...
Es ist eine Art sich rückwärts bewegende kumulative Summe.....Hier bleibe ich hängen.

Betreff: Skript zum Ausführen einer kumulativen Summe, bis ein bestimmtes Limit erreicht istHier ist eine Lösung.Ich nehme an, sobald Sie über 300 gehen, starten Sie neu.Wenn Sie aufhören müssen, bevor Sie über 300 gehen, ist die Logikänderung ziemlich einfach.
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];
)
);