Bisogna essere creativi con la sequenza continua fino alla fine della tabellaCiao,
Non so se esista una soluzione specifica per il mio problema, ma mi piacerebbe sentire il parere degli esperti...
Nel mio utilizzo di JMP 17, spesso aggiungo nuovi dati a un file esistente. Ogni riga avrà il suo "numero di batch" univoco assegnato. Quando ottengo un nuovo set di dati, ci saranno nuovi numeri di batch che devo aggiungere al mio file esistente. Finora, il modo più semplice per farlo sarebbe stato semplicemente copiare i nuovi numeri di batch nel file master ed eseguire una funzione di aggiornamento tabella per trasferire tutti i dati necessari, ma sto cercando un'opzione per farlo in modo più automatizzato per ridurre il tempo di "elaborazione dati".
In sostanza, la domanda è: devo limitarmi a uno dei metodi indicati di seguito oppure esiste un modo più creativo per svolgere questo compito tramite JSL?
Cosa ho provato:
- Aggiungi righe e quindi evidenzia gli ultimi due numeri di lotto e Riempi -> Continua sequenza fino alla fine della tabella
- L'aggiunta di righe può essere effettuata tramite JSL, ma ho fatto fatica a trovare un modo autonomo per riempire fino alla fine della tabella...
- Copia e incolla i numeri di batch dall'importazione dei dati nel master dei dati, quindi esegui una funzione Aggiorna tabella per estrarre il resto dei dati
- Metodo collaudato che funziona sempre bene, dovrebbe solo essere un po' più automatizzato.
- Concatenare le tabelle di dati e quindi eliminare i duplicati
- Questo ha funzionato molto bene, ma a volte i dati nell'ultima manciata di righe sono incompleti nel master, ma sarebbero completi con l'aggiornamento dei dati. Utilizzando questo metodo si eliminano i duplicati più vecchi quando sarebbe più ideale mantenere i duplicati più recenti. Questo metodo potrebbe funzionare molto bene se potessi mantenere i duplicati più recenti.
- Utilizzare una formula Row() in una colonna adiacente o per la colonna stessa del numero di lotto.
- Non iniziamo quasi mai dal Batch n. 1, ma questo problema può essere facilmente risolto aggiungendo Row()+(un numero). Ad esempio, se il primo batch è 6543, la mia formula sarebbe [Row() + 6542] e verrebbe calcolato il conteggio corretto.
- Anche questo funzionerebbe bene, ma a volte i numeri di batch vengono saltati. Ciò farebbe sì che la colonna calcolata non corrisponda alla colonna del numero di batch, a meno che non voglia avere lacune nei dati a volte
Automazione e scriptingRe: Bisogna essere creativi con la sequenza continua fino alla fine della tabellaSe riesci a definire le regole e le eccezioni, allora JSL può essere scritto per risolvere il tuo problema. Ho difficoltà a seguire tutto quello che hai detto, ma sembra che se riesci a definire dove ottenere il primo numero di batch, e cosa fare per le irregolarità, e poi come rilevare e quindi gestire il caso in cui ci sono numeri di batch saltati, tutto questo può essere gestito in JSL.
Re: Bisogna essere creativi con la sequenza continua fino alla fine della tabellaÈ davvero un esercizio semplice... diciamo che ho un set di dati "master" con i batch da 19257 a 19640. Ho ricevuto un nuovo set di dati con i batch da 19620 a 19665 che ora devo aggiungere al set di dati "master" in modo che siano tutti in un file. La prassi normale è quella di copiare questi nuovi numeri di batch sul master e quindi eseguire Tabelle -> Aggiorna, abbinare le due tabelle Batch = Batch e quindi l'aggiornamento trasferisce tutti i nuovi dati.
Il mio più grande problema è usare JSL per trasferire i numeri di batch dai nuovi dati ai dati master, o farli riempire fino alla fine della tabella in modo autonomo. Aggiungere righe, eseguire Table Update ed eliminare le righe inutilizzate è la parte facile.
Re: Bisogna essere creativi con la sequenza continua fino alla fine della tabellaPuoi usare
Tabelle=>Unisciti
che creerà una nuova tabella con tutti i dati della tabella originale insieme alle nuove righe della nuova tabella immessa. Puoi quindi semplicemente eliminare la tabella originale e rinominare la nuova tabella unita.
Re: Bisogna essere creativi con la sequenza continua fino alla fine della tabellaFunziona bene, ma la nuova tabella perde gli stati di riga che possono essere applicati nella prima tabella dati. So che posso usare una colonna Row State, ma ho bisogno che tutte le azioni siano registrate nel Log e "copia dagli stati di riga" non viene registrato nel log per qualche motivo. L'idea è che tutto questo venga registrato nel log in modo che i miei colleghi possano copiare da lì per creare questo script di aggiornamento dati senza dover imparare la codifica dietro di esso.
Concatenate potrebbe essere l'opzione che sto cercando in ultima analisi, ma ho bisogno di un modo per eliminare i duplicati mantenendo il SECONDO duplicato. La maggior parte delle informazioni in decine di colonne saranno identiche, ma il primo duplicato avrà alcuni dati mancanti verso la fine dell'elenco delle colonne. Pertanto il secondo duplicato fornirà un set di dati più completo. Come tale:
Lotto #
1
2
3 (duplicare, eliminare)
4 (duplicare, eliminare)
5 (duplicare, eliminare)
[di seguito i dati concatenati con alcuni batch duplicati]
3 (duplicare, mantenere)
4 (duplicare, mantenere)
5 (duplicare, mantenere)
6
7
8
Re: Bisogna essere creativi con la sequenza continua fino alla fine della tabellaNon riesco a immaginare cosa stai descrivendo quando dici: " L'idea è che tutto questo venga registrato nel registro in modo che i miei colleghi possano copiare da lì per creare questo script di aggiornamento dati senza dover imparare la codifica che c'è dietro". C'è un modo in cui potresti spiegare esattamente cosa viene fornito nel registro che gli utenti stanno copiando e utilizzando?
Per quanto riguarda i batch duplicati, ti consiglio di cercare nello Scripting Index per Select Duplicate Rows. Troverà tutte le righe che sono state viste in precedenza. Potresti quindi scorrere i duplicati trovati e da lì trovare la riga precedente che è stata duplicata e quindi eliminare quella riga.
Re: Bisogna essere creativi con la sequenza continua fino alla fine della tabellaQuando faccio questa affermazione, mi riferisco alla serie di passaggi necessari per inserire nuovi dati in un set di dati esistente, tra cui:
- Aprire e importare un nuovo set di dati Excel precedentemente salvato con un nome file specifico in una posizione specifica
- Aggiungi tali dati al set di dati esistente per renderlo più completo
- "Pulisci" i dati (ad esempio elimina le colonne che il nuovo set di dati aggiunge ma che non sono necessarie, riformatta altre colonne, qualsiasi altra cosa possa essere necessaria)
Tutte queste azioni vengono aggiunte al Log e il JSL generato dal Log può essere copiato in un nuovo script nella tabella dati. Non molti dei miei colleghi sono esperti di JSL, quindi abbiamo bisogno di questa semplicità per consentire all'intero team di rendere questo progetto ripetibile per tutti. Se devo aggiungere manualmente del codice JSL a uno script che il Log non cattura, il prodotto finale diventa molto più difficile da implementare per il team.
Come si farebbe a fare la parte del tuo suggerimento "passa attraverso i duplicati trovati e da lì trova la riga precedente che è stata duplicata e poi elimina quella riga"? Penso che potrebbe essere l'ultimo pezzo mancante per mettere insieme tutto questo.