Ottieni le righe tra i caratteri da una colonna, quindi sposta il valore dell'altra colonna (solo la riga selezionata) in un'altra colonnaCIAO,
Voglio spostare o copiare e incollare più valori di colonne di righe selezionate in altre colonne nella stessa tabella come nell'immagine sottostante
le righe interessate partono sempre da :Item == "start" fino a :Item == "values", ma il totale delle righe può essere diverso. Voglio copiare, incollare o spostare il valore in Col1 e Col2 delle righe interessate in Col 3 e Col 4. Il mio pensiero attuale è di creare manualmente un elenco che includa la stringa da start a values sotto :Item, quindi creare una colonna da etichettare come "1" se :Item contiene un elenco. da lì impostare Col 3 == Col 1 e Col 4 = Col 2.
Tuttavia, le righe tra start e values possono essere diverse. Mi chiedo se qualcuno conosca un metodo migliore per svolgere l'attività senza dover creare manualmente l'elenco, ma basandosi su "start" e "values" per trovare le righe.
tabella originale

dopo essersi trasferito

Automazione e scriptingRe: ottieni le righe tra i caratteri da una colonna, quindi sposta il valore dell'altra colonna (solo la riga selezionata) in un'altra colonnaImmagino che sarebbe più semplice eseguire manualmente il taglia e incolla piuttosto che dover creare elenchi di inizio e fine.
Re: ottieni le righe tra i caratteri da una colonna, quindi sposta il valore dell'altra colonna (solo la riga selezionata) in un'altra colonnama lo scopo è l'automazione giornaliera e le righe tra inizio e valori possono cambiare di volta in volta.
Re: ottieni le righe tra i caratteri da una colonna, quindi sposta il valore dell'altra colonna (solo la riga selezionata) in un'altra colonnaQuindi lo renderei il più semplice possibile e creerei una tabella di configurazione simile a questa

Ciò rende il tuo JSL piuttosto semplice, qualcosa del tipo:
Names Default To Here( 1 );
dt = Current Data Table();
dtConfig = Data Table( "Config" );
For( i = 1, i <= N Rows( dtConfig ), i++,
frCol = dtConfig:From Column[i];
toCol = dtConfig:To Column[i];
For( k = dtConfig:Start Row[i], k <= dtConfig:End Row[i], k++,
Column( dt:toCol )[k] = Column( dt, FromCol )[k];
If( dtConfig:Move_Copy == "Move",
Column( dt, FromCol ) = ""
);
);
);
Re: ottieni le righe tra i caratteri da una colonna, quindi sposta il valore dell'altra colonna (solo la riga selezionata) in un'altra colonnaPenso che tu possa farlo tranquillamente senza una tabella di configurazione. Questo controlla che Col 1 contenga un valore nella riga "start" prima di sovrascrivere qualsiasi cosa. Sì, mi piace usare For Each().
Names Default To Here( 1 );
starts = Loc( dt:Item << Get Values, "start" );
ends = Loc( dt:Item << Get Values, "values" );
For Each( {v, i}, starts,
If( :Col 1[v] != "",
For Each( {val, idx}, v :: ends[i],
:Col 3[val] = :Col 1[val];
:Col 4[val] = :Col 2[val];
:Col 1[val] = "";
:Col 2[val] = "";
)
)
);