Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnaCiao, sono un principiante JSL. Devo imparare a spostare un blocco di celle in una colonna in una posizione diversa in una colonna diversa, appena creata.In questo caso, in cima a questa nuova colonna.
Nello specifico, devo selezionare un insieme di celle nella colonna THK contrassegnata come PRE in una colonna PRE/POST separata e incollarle sopra una nuova colonna contrassegnata come THK PRE. È in qualche modo simile alla funzione Dividi colonna, ma non voglio utilizzare la funzione Dividi colonna poiché trovo che, a causa di qualche problema tecnico, i dati a volte appaiono codificati nella colonna appena creata se mancano i dati in alcune celle della colonna THK.
Da alcuni esempi sui forum, ho messo insieme il codice qui sotto, ma non incolla alcun valore nella colonna THK PRE appena creata.Per favore aiuto!Molte grazie in anticipo.
Ecco cosa mi serve:
Tabella dei dati di partenza
GRAZIE PRE/POST
9.5 POST
9.8 POST
10.1 POST
11.0 PRE
11.4 PRE
10.9 PRE
Ecco come deve apparire la tabella dei dati dopo questa operazione:
THK | PRE/POSTA | THK PRE
9.5 POST 11.0
9.8 POST 11.4
10.1 POST 10.9
11.0 PRE
11.4 PRE
10.9 PRE
Lo script seguente non incolla alcun valore nella colonna appena creata, la colonna rimane vuota
// Pick the source data table
dt=Open("Data Table");
//Create New THK PRE column
dt << New Column( "THK PRE", Numeric, "Continuous");
Wait(1);
// Select PRE values from THK column
vals = Column(dt, "THK") << Get Rows Where(:Name("PRE/POST") == "PRE");
// Put these in the new column THK PRE
Column(dt, "THK PRE") << Set Values(vals)
Per favore aiuto! Molte grazie in anticipo.Uso JUMP 16.0.0
@jthi
Miscelazione e pulizia dei datiRi: Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnaCiao Txnelson, molte grazie per la rapida risposta!Funziona come un fascino!Immagino di essere stato abbastanza vicino, ma non riuscivo a capire la nostra sintassi.
Ri: Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnaEcco una rielaborazione del tuo script con alcune annotazioni aggiunte che gestiscono ciò che desideri
Names Default To Here( 1 );
// Pick the source data table
//dt=Open("Data Table");
dt = New Table( "Example",
Add Rows( 6 ),
New Column( "THK",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [9.5, 9.8, 10.1, 11, 11.4, 10.9] )
),
New Column( "PRE/POST",
Character,
"Nominal",
Set Values( {"POST", "POST", "POST", "PRE", "PRE", "PRE"} )
)
);
//Create New THK PRE column
dt << New Column( "THK PRE", Numeric, "Continuous" );
Wait( 0 );
// Find the rows PRE values from THK column
// and copy those values from the found rows
// to the vals matrix
vals = :THK[dt << get rows Where( :Name( "PRE/POST" ) == "PRE" )];
// Put these in the new column THK PRE
dt:THK PRE << Set Values( vals );Ri: Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnac'è un modo per incollare i dati selezionati in una nuova colonna nella stessa posizione della riga? o impostare i valori di una nuova colonna in base alla selezione? Qualcosa come questo?

Ri: Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnaEcco un paio di modi per fare quello che vuoi.
Names Default To Here( 1 );
// Pick the source data table
//dt=Open("Data Table");
dt = New Table( "Example",
Add Rows( 6 ),
New Column( "THK",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [9.5, 9.8, 10.1, 11, 11.4, 10.9] )
),
New Column( "PRE/POST",
Character,
"Nominal",
Set Values( {"POST", "POST", "POST", "PRE", "PRE", "PRE"} )
)
);
//Create New THK PRE column
dt << New Column( "THK PRE1",
Numeric,
"Continuous",
formula( If( :"PRE/POST"n == "PRE", :THK, . ) )
);
dt << New Column( "THK PRE2", Numeric, "Continuous" );
For Each Row(
If( :"PRE/POST"n == "PRE",
:THK PRE2 = :THK,
:THK PRE2 = .
)
);
Se vuoi che il valore THK PRE sia 5 come illustrato nel secondo esempio, modifica semplicemente il valore risultante da :THK a 5
Ri: Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnaApprezzo la risposta. Speravo ci fosse una funzione di script "incolla" di cui non ero a conoscenza. Sembra che dovrò scorrere ogni riga come suggerito se la colonna contiene già altri valori.
Ri: Copiare le celle selezionate da una colonna e incollarle nelle celle selezionate in un'altra colonnaUn po' più vicino al copia/incolla: puoi ottenere e scrivere in batch tutti i valori contemporaneamente:
Sottoscrizione della tabella dati
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 100 ),
New Column( "input",
Set each Value( random uniform () )
),
New Column( "variant",
Character,
set each value({"A","B"}[random integer(1,2)])
)
);
dt << New Column( "out");
rows= Where(:variant == "A");
vals = dt[rows,"input"];
dt[rows,"out"]=vals;
Questo è simile a
dt:THK PRE << Set Values( vals );
La differenza: tramite l'indicizzazione della tabella dati è possibile specificare con precisione in quali righe scrivere.
Imposta valori inizia dalla riga 1 e riempie tante righe quanti sono i valori nell'array.