Ho una tabella dati con tre colonne. La prima colonna è "settimana lavorativa". La seconda colonna è "Qtà". La terza colonna è "Cum_Qty".
Nella colonna "Cum_Qty", il valore è la somma continua del valore della riga precedente nella colonna "Qty" fino a quando non si incontra => 500.
Se la quantità di riga è => 500 in, il valore si aggiornerà come in 'cum_Qty'.
Ho bisogno di aiuto per scrivere lo script JSL per creare una nuova colonna ('Cum_WW') che concatenerà i numeri della settimana lavorativa per indicare che il corrispondente 'Cum_Qty' è la somma dalla settimana lavorativa X alla settimana lavorativa Y al fine di soddisfare qty => 500. Successivamente, elimina alcune righe.
Fare riferimento al file allegato e alla spiegazione di seguito per i dettagli.
Esempi:
Nella settimana lavorativa 2, la quantità è 633 (> 500) nella colonna "Qtà", la quantità è 633 in "Quantità_um" (nessuna somma dei valori delle righe precedenti), in "WH_Sum" indica la settimana lavorativa 2 .
Nella settimana lavorativa 3, la quantità è 185 (<500), somma 185 (dalla settimana lavorativa 3) + 633 (dalla settimana lavorativa 2) = 818, questo valore viene aggiornato nella colonna 'Cum_Qty', in 'Cum_WW' indicherà la settimana lavorativa 2_3 .
Nella settimana lavorativa 4, la quantità è 130 (<500), somma 130 (dalla settimana lavorativa 4) + 185 (dalla settimana lavorativa 3) + 633 (dalla settimana lavorativa 2) = 948, questo valore viene aggiornato nella colonna 'çum_Qty', in ' Cum_WW 'indicherà la settimana lavorativa 2_4 .
Nella settimana lavorativa 5, la quantità è 90 (<500), somma 90 (dalla settimana lavorativa 5) + 130 (dalla settimana lavorativa 4) + 185 (dalla settimana lavorativa 3) + 633 (dalla settimana lavorativa 2) = 1038, questo valore viene aggiornato in La colonna "Cum_Qty", in "Cum_WW" indicherà la settimana lavorativa 2_5 .
e così via......
Successivamente, elimina la riga in "Cum_WW" 2 , 2_3 , 2_4 e mantieni la riga di dati in "Cum_WW" 2_5 ….e così via….
Grazie per l'aiuto.
Ecco uno script che segue i passaggi che possono essere eseguiti utilizzando JMP interattivo per risolvere questo problema. Essere in grado di creare script in modo efficace in JMP richiede una buona comprensione di ciò che JMP può fare in modo interattivo. I buoni script sfruttano le funzionalità incorporate di JMP interattivo. Un buon inizio per imparare i dettagli di JMP può essere trovato leggendo i documenti JMP, Discovering JMP e Using JMP. Questi possono essere trovati nella libreria di documentazione di JMP
Aiuto => Libreria di documentazione JMP
Ecco uno script che fa quello che vuoi. Si presume che inizi con le 2 colonne, Qty e Cum_WW.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Cum_Qty",
formula(
If( Row() == 1, x = 0 );
If( :Qty > 500,
x = :Qty,
x = x + :Qty
);
x;
)
);
// Turn formula columns into static values
dt:Cum_Qty << delete formula;
dt << New Column( "WW", formula( Word( 1, :Cum_WW, "_" ) ) );
// Create a new column that is a numeric version of the Cum_WW
dt << New Column( "Cum_WW_Num",
formula(
Sum(
Num( Word( 1, :Cum_WW, "_" ) ),
Num( Word( 2, :Cum_WW, "_" ) ) * .1
)
)
);
dt << select where( :WW == "" );
dt << delete rows;
dt << New Column( "select",
Formula(
If( :Cum_WW_Num != Col Max( :Cum_WW_Num, :WW ),
Row State( Row() ) = Selected State( 1 )
)
)
);
dt << delete columns( {"WW", "Cum_WW_Num", "select"} );
dt << delete rows;
Si prega di studiare il copione, in modo da comprendere i vari elementi che sono stati utilizzati per arrivare alla soluzione. Se hai domande su qualcuno di loro, rispondi a questo post e ti aiuterò a completare la tua comprensione.
Grazie Jim. Lo script è semplice e fantastico.
Se inizia con 3 colonne "workweek", "Qty" e "Cum_Qty", c'è un modo per ottenere la colonna "Cum_WW"?