Devo manipolare i dati utilizzando varie formule e memorizzare l'output in una colonna finale. Sono in grado di applicare correttamente la formula e di memorizzare i dati in una nuova colonna ma non nella stessa colonna.
Per esempio,
In questa tabella,

Sto usando Formula (abs (Divide (Effect, Subtract (USL, Mean))) * 100)) per le celle in cui i valori USL sono presenti e
Formula (abs (Divide (Effect, Subtract (Mean, LSL))) * 100)) dove sono presenti i valori LSL. Ma per le celle in cui il nome della colonna, LSL e USL sono vuoti, voglio usare la formula: Formula (Divide (abs (Effect)), Mean);
La sceneggiatura su cui sto lavorando è:
dtq = Open("path\formula.jmp");
a = dtq << New Column("Final", Formula(abs(Divide(Effect,Subtract( USL,Mean)))*100));
//);
//:Final << Formula(abs(Divide(Effect,Subtract( USL,Mean)))*100);
b = dtq << New Column("Final1",Formula(abs(Divide(Effect,Subtract( Mean,LSL)))*100));
If( Is Empty( dtq << ColumnName ),
:Final << Formula(Divide(abs(Effect)), Mean);
);
show(b);
L'output che ottengo ora è:

mentre io voglio che i valori di Final1 siano nella stessa colonna. Anche,
questa parte della sceneggiatura:
If( Is Empty( dtq << ColumnName ),
:Final << Formula(Divide(abs(Effect)), Mean);
);
non mostra alcun errore ma non funziona bene. Grazie per tutto l'aiuto.
@Dan_Obermiller Grazie per la soluzione. Ho troppe tabelle su cui voglio eseguire la stessa formula, quindi sarebbe meglio se uno script lo facesse. Grazie mille per la soluzione rapida anche se ..
Supponendo che una riga non avrà mai entrambi: LSL e: USL come non mancanti, questo gestirà tutti i casi che hai descritto:
If(
!Is Missing( :LSL ), Abs( :Effect / (:Mean - :LSL) ) * 100,
!Is Missing( :USL ), Abs( :Effect / (:USL - :Mean) ) * 100,
Is Missing( :ColumnName ), Abs( :Effect ) / :Mean
)
Questo mi sembra un po 'troppo complesso. Tutti i calcoli possono essere inseriti in una singola colonna formula:
Se(
Manca (: LSL) e manca (: USL), Abs (: effetto /: medio),
Manca (: LSL), Abs (: Effetto / (: USL -: Media)) * 100,
Manca (: USL), Abs (: Effetto / (: Media -: LSL)) * 100
)
Non ha bisogno di essere copiato. Interagentemente sembra questo:

e dà questi risultati:
