Escribiendo la fórmula de Excel en el script JSL (Fórmula en el archivo de Excel adjunto)Hola,
Estoy tratando de replicar fórmulas que se encuentran actualmente en la hoja de Excel adjunta.
Donde, DSA_Step_Size(dB) = ABS(delta de :RESULT filas cuando los valores de ATT1 están disminuyendo para el mismo valor de :FREQUENCY).
La fórmula está en la hoja de Excel si mi explicación es confusa.
Rango DSA (dB) = ABS (delta de :RESULT filas cuando ATT1=63 y ATT1=0 para cada :FREQUENCY).
Estoy tratando de usar bucles for en la fórmula ... hasta ahora no obtengo el resultado que quiero:
n = 63;
Para( i = 1, i <= n, i++,
:RESULTADO[i] - :RESULTADO[i + 3]
);
Tabla de datossecuencias de comandosRe: Escribir fórmula de Excel en secuencia de comandos JSL (Fórmula en archivo de Excel adjunto)if(row() <= 63, :RESULT[Row()] - :RESULT[Row() + 3])
?
Re: Escritura de fórmula de Excel en secuencia de comandos JSL (Fórmula en archivo de Excel adjunto)@vince_faller proporciona una solución que funciona para su tabla de datos en el formulario después de que se haya ordenado la tabla.No estoy seguro de lo que se necesita para ordenar sus datos.
A continuación, se muestra una fórmula que se desarrolló usando el archivo de Excel importado y sin modificar el archivo una vez que se importó a JMP.

If( Row() == 1 | :ATT1 != Lag( :ATT1 ),
currATT1 = :ATT1;
currFreq = :FREQUENCY;
currRow = Row();
If( :ATT1 == 0,
theRow = 0,
theRow = (Current Data Table() << get rows where(
Row() > currRow & :ATT1 == currATT1 - 1 & :FREQUENCY == currFreq
))[1] - Row()
);
);
:RESULT - :RESULT[Row() + theRow];
Cada vez que el valor de ATT! cambia, la fórmula mira hacia adelante para encontrar la siguiente fila donde la FRECUENCIA es la misma que la FRECUENCIA actual y el ATT! es 1 menos que el valor actual de ATT1 y encuentra el número de filas entre la fila actual y la fila anticipada.Utiliza ese valor de compensación a partir de ese momento, hasta que el valor de ATT1 cambia nuevamente.
Adjunto está el archivo de Excel importado que utilicé.