Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoCIAO,
Ho due colonne denominate "Paese di spedizione" e "Stato di spedizione". Alcune righe sotto Paese di spedizione, in particolare per gli Stati Uniti, non contengono alcun valore.Vorrei aggiornare la colonna Paese di spedizione con il valore "USA" quando lo stato di spedizione contiene valori corrispondenti a vari codici di stato negli Stati Uniti. Ho quasi 250.000 righe, quindi l'aggiornamento manuale non è possibile. Sono nuovo a JMP e agli script e non riesco a trovare un modo per risolvere questo problema.
Ho allegato uno screenshot dei miei dati di esempio. Qualsiasi aiuto sarebbe apprezzato. Grazie in anticipo.

Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoQuesto codice deve essere eseguito come script separato, non come formula.Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoCiao,
Potrebbe essere una domanda sciocca ma quando usi questo codice lo usi modificando la formula della colonna? L'ho fatto con una formula come questa poiché non lo faccio in base a un valore mancante. Sto cercando di aggiornare la colonna Vendor in modo che quando la colonna Label sia uguale a "MnDOT Est." il venditore è uguale a "MnDOT". Ma mi dà un errore di interruzione della formula del fornitore di colonne con un riferimento illegale. Cambia quelli in MnDOT ma cancella semplicemente tutti gli altri. Spero che abbia un senso.
For Each Row(
temp = :Vendor;
:Vendor = If( :Label == "MnDOT Est.", "MnDOT", temp);
);Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specifico- Non convertire il valore della data in carattere.
- Nelle colonne numeriche (che è una colonna di data) il "." indica che il valore è mancante.
- Devi leggere un po'.I libri "Utilizzo di JMP" e "Guida allo scripting" sono assolutamente da leggere.Li puoi trovare nel menu a discesa Aiuto
Aiuto==>Libri==>Utilizzo di JMP
Aiuto==>Libri==>Guida allo scripting
Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoGrazie txnelson.
In una nota correlata, se manca una data, è meglio convertire la colonna in caratteri e quindi eseguire lo script e inoltre eseguire il "." punto che appare nelle colonne mancanti interpretato come mancante in Ismissing() o dovrebbe essere semplicemente vuoto?
Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoQuindi, se manca il valore nella colonna A, vuoi che il valore nella colonna A2 venga assegnato alla colonna A?E lo stesso per altre 5 colonne?
Se è quello che stai chiedendo, ecco come lo faresti per la colonna A e ripeteresti per le altre 5 colonne
For Each Row(
If( IsMissing(:A), :A = :A2);
If( IsMissing(:B), :B = :B2);
);Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoHo un problema simile. Ho ID e date che dovrebbero essere identificativi ma in colonne diverse a causa di valori mancanti.
Come posso applicarlo per sostituire solo le righe con valori mancanti per 6 colonne con valori di diversi set di 6 colonne?
Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoDavvero utile.! Ha funzionato anche per il mio caso d'uso.! Molte grazie.!
@txnelson ha scritto:
Ecco una soluzione che si prende un po' di libertà con la sceneggiatura di Mark
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);
Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoGrazie Jim. Ha funzionato perfettamente.
Grazie Marco per la tua sceneggiatura.
Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoEcco una soluzione che si prende un po' di libertà con la sceneggiatura di Mark
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoCiao Mark,
Grazie per la tua soluzione
Tuttavia, noto che quando eseguo lo script, le righe senza valore vengono aggiornate con "USA" mentre le righe con valore presenti prima scompaiono dopo l'esecuzione dello script.
Ho allegato uno screenshot sia prima che dopo l'esecuzione dello script. Grazie.
Before scriptBefore scriptPrima della sceneggiatura
After scriptAfter script Dopo la sceneggiatura
Ri: Aggiorna la colonna con valori quando un'altra colonna contiene un valore specificoPotresti utilizzare una formula in una nuova colonna come questa:
If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" )
Se non desideri una nuova colonna, puoi eseguire questo script per sostituire i valori mancanti nella colonna esistente:
For Each Row(
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" );
);
In entrambi i casi dovresti espandere l'elenco per includere il codice a due lettere per ogni stato prima dell'uso.