Ciao mondo, principiante di JSL. Ho una tabella dati nel formato seguente. Le colonne sono BIN, TOF (presentato errore o meno), RWED (rifatta la saldatura) e MP (assemblato da).Non vengono generati i risultati finali e termina dopo il passaggio 1 (descritto di seguito).Come posso risolverlo?
| BIDONE | TOF | RWED | deputato |
| 1001 | Y | 1 | 31A |
| 1001 | N | | 31A |
| 1001 | N | | 31A |
| 1001 | Y | 1 | 31A |
| 1002 | N | | 31A |
| 1002 | N | | 31B |
| 1002 | N | | 31B |
| 1002 | Y | 1 | 31B |
| 1003 | Y | 1 | 31A |
| 1003 | Y | 1 | 31B |
Sto provando a seguire i passaggi per ottenere i risultati finali desiderati, ovvero RWED in percentuale del numero totale o delle unità assemblate in quel BIN.
Passaggio 1: creare una tabella riepilogativa
| BIDONE | N righe | deputato | Somma(RWED) |
| 1001 | 4 | 31A | 2 |
| 1002 | 1 | 31A | 0 |
| 1002 | 3 | 31B | 1 |
| 1003 | 1 | 31A | 1 |
| 1003 | 1 | 31B | 1 |
Passaggio 2: Rinominare la tabella di riepilogo "Sum(RWED)" in "TRWED" e aggiungere la colonna con la formula "RWRat" per calcolare la velocità di risaldatura in base al numero totale di unità saldate per BIN per MP
| BIDONE | N righe | deputato | TRWED | RWRat |
| 1001 | 4 | 31A | 2 | 50 |
| 1002 | 1 | 31A | 0 | 0 |
| 1002 | 3 | 31B | 1 | 33.33 |
| 1003 | 1 | 31A | 1 | 100 |
| 1003 | 1 | 31B | 1 | 100 |
Passaggio 3: trasponi la tabella nell'output finale e salva la tabella
| BIDONE | 31A | 31B |
| 1001 | 50 | 0 |
| 1002 | 0 | 33.33 |
| 1003 | 100 | 100 |
Ho fatto il seguente script
dt1 = Open( "smdt.csv" ); //Open the data table
Wait( 2 );
//Summary table creation
dt2 << Summary( Group( :BIN, :MP ), Sum( :RWED ), Freq( "None" ), Weight( "None" ), );
Column( dt2, "sum(:RWED)" ) << set name( "TRWED" );//renaming the summary table column
dt2 << New Column( "RWRat", Numeric, Continuous, Formula( Round( (:Name( "TRWED)" ) / :N Rows) * 100, 2 ) ) );//add new column to with formula
//Transpose the final results
Transpose( columns( :Name( "Sum(RWED)" ) ), By( :BIN ), Label( :MP ), Output Table( "RWRT By (BIN, MP)" ) );
dt2 << Save( "Stb.csv" );//Save the table
@txnelson Grazie per la pronta risposta.
Dopo aver creato la colonna RWRat vedo che non aggiunge i valori calcolati alla colonna. È perché la colonna "N Rows"? La colonna "N righe" viene creata quando eseguo la tabella di riepilogo. Devo rinominare quella colonna se voglio riutilizzarla nella formula?
Il formato della tabella di output finale è corretto per me, ma i valori della tabella risultano vuoti.
Anche io TXN_WW==BIN. Questo è stato il mio errore.
names default to here(1);
dt1 = New Table( "Example",
Add Rows( 10 ),
New Script(
"Source",
Data Table( "Untitled 31" ) << Split(
Split By( :Column 2 ),
Split( :Column 1 ),
Sort by Column Property
)
),
New Column( "Bin",
Character,
"Nominal",
Set Values(
{"1001", "1001", "1001", "1001", "1002", "1002", "1002", "1002", "1003",
"1003"}
)
),
New Column( "TOF",
Character,
"Nominal",
Set Values( {"Y", "N", "N", "Y", "N", "N", "N", "Y", "Y", "Y"} )
),
New Column( "RWED",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, ., ., 1, ., ., ., 1, 1, 1] )
),
New Column( "MP",
Character,
"Nominal",
Set Values(
{"31A", "31A", "31A", "31A", "31A", "31B", "31B", "31B", "31A", "31B"}
)
)
);
dt2 = dt1 << Summary(
Group( :Bin, :MP ),
Sum( :RWED ),
Freq( "None" ),
Weight( "None" )
);
dt2:Name("Sum(RWED)") << set name( "TRWED" );
dt2 << NewColumn("RWRat", Numeric, Continuous, Formula(Round(:TRWED / :N Rows* 100, 2) ));
dt3 = dt2 << Transpose(
columns( :RWRat ),
By( :Bin ),
Label( :MP ),
Output Table( "\!"RWRT By (TXN_WW, MP" )
);