Crear fórmulaHola a todos,
¿Cómo puedo calcular las columnas X_9 y X_10 con una fórmula?
Para X_9:
Mientras X_1 = X_1 -> X_7 (Fila1) -X_8 = X_9
X_9 - X_8
Para X_10:
Mientras X_1 = X_1 -> X_10 (Fila1) = X_9 - X_8
X_9 + X_8
¡Muchas gracias por su ayuda!
Re: Crear FórmulaEste tipo de pregunta se ha hecho muchas veces. ¿Buscó primero en debates anteriores información que pudiera ayudarlo a resolver este problema?
Es poco probable que una fórmula use el Mientras() función. Probablemente quieras usar el Si() función. Ver también el Retraso() función.
Las funciones están documentadas. Por favor mira Ayuda> Biblioteca de documentación JMP> Uso de JMP . Hay capítulos dedicados a fórmulas y funciones. Por favor vea también Ayuda> Índice de secuencias de comandos . Configure este navegador para mostrar Las funciones (menú desplegable superior izquierdo) y luego busque Si y Retraso .
Re: Crear FórmulaLo siento, pero no puedo interpretar su notación sobre lo que se requiere para X_0 y X_10. ¿Puedes explicarlo en términos escritos?Re: Crear FórmulaHola,
Gracias por su respuesta.
Espero que puedas entenderlo ahora.
Atentamente.
Mientras las filas en la columna X_1 no cambien
-> debe calcularse en la columna X_9 = X_7 menos X_8.
Mientras las filas en la columna X_1 no cambien
-> la columna X_8 se agregará a la columna X_10
Re: Crear FórmulaAquí está mi solución: la fórmula X__9 es
If( Row() == 1, sumX__8 = 0 );
If( :X__1 != Lag( :X__1 ),
sumX__8 = 0
);
sumX__8 = sumX__8 + :X__8;
:X__7 - sumX__8;
La fórmula X__10 es
If( Row() == 1, theSum = 0 );
If( :X__1 != Lag( :X__1 ),
theSum = 0
);
theSum = theSum + :X__8;
theSum;
Se adjunta una tabla de datos con las fórmulas aplicadas
Re: Crear FórmulaHola,
esto es realmente maravilloso !!
¡Muchas gracias por eso!
Espero que pronto empiece a entender cómo usar la fórmula
... y puedo hacerlo solo.
Les deseo una agradable tarde / tarde (?).
Re: Crear FórmulaHola txnelson
¿entiendo tus fórmulas correctamente?
La fórmula para X_9
si la fila = 1, entonces suma X_8 = 0
Si X_1 es no es igual (?! = retraso) a X_1 luego sumX_8 = 0
de lo contrario sumX_8 = sumX_8 + X_8
y X_7 - sumX_8
La formula para X_10
si Row = 1 entonces theSum = 0
si X_1 lo hace no es igual (?! = Lag ) X_1
theSum = 0
de lo contrario theSum = TheSum + X_8
Completa la suma
¿Se interpreta esto correctamente?
Un saludo soleado y mantente saludable!
Re: Crear Fórmula


Esto está mal ....
Hola, estoy tratando de hacer la fórmula yo mismo
¿Cómo obtengo el siguiente si está debajo?
Gracias por tu ayuda.
Re: Crear FórmulaSu interpretación de X__9 es incorrecta. Permítanme intentar explicar cómo funciona.
Se deben comprender 3 elementos sobre las fórmulas en JMP que ayudarán con la interpretación
- JMP ejecuta la fórmula para cada fila en la tabla de datos, comenzando con la fila 1. Y la función Row () devolverá la fila en la que JMP se encuentra actualmente
- Puede crear tantas variables de memoria (es decir, sumX__8) como desee en una fórmula y mantendrán su valor hasta que se modifique en la fórmula, de fila en fila. Esta es una de las claves de la fórmula. Esta variable resume los valores de X__8 de fila en fila, hasta que se observe un nuevo valor de X__1. Cuando eso sucede, sumX__8 se establece de nuevo en 0.
- El resultado del último cálculo ejecutado en una fórmula para una fila dada, es el valor que se mostrará para la fila en la tabla de datos.
Entonces, la interpretación de la fórmula para la columna X__9 es:
Para la fila 1
Si Row () es igual a 1, configure la variable de memoria sumX__8 igual a 0. Esto es cierto Row () es igual a 1, por lo que sumX__8 se inicializa a un valor de 0. La variable de memoria sumX__8 se usa para calcular la suma acumulativa de X__8 dentro de la agrupación de X__1.
Si el valor de X__1 para la Fila 1 no es igual al valor anterior (Lag) de X__1, establezca el valor de sumX__8 en 0. Como no hay un valor anterior de X__1, no se realizará ningún cálculo. sumX__8 permanecerá en su valor actual, que es 0
La siguiente línea ( sumX__8 = sumX__8 +: X__8; ) ahora se ejecuta para establecer la suma acumulativa para esta fila. Para ello, toma el valor actual de sumX__8, que es 0 y le agrega el valor X__8 para la fila 0, que es 0 para el resultado de 0. Nota: esta línea de código no es el cálculo "De lo contrario" para la función IF () anterior. Esta línea de código se ejecuta para cada fila.
La siguiente línea de código (: X__7 - sumX __ *) realiza el valor de la fila de cálculo 1 de X__7, que es 20 y resta la suma acumulativa de X__7 (el valor sumX__8 es 0) y aparece un valor de 20-0 o 20. Dado que este es el último cálculo para la fila 1 en la fórmula, este valor es lo que termina como el valor de la fila 1 para X__9
Fila 2
Row () no es igual a 1, por lo que el código de resultado de sumX__8 = 0 no se ejecutará
El valor de la fila 2 de X__1 es 1000, que es igual al valor anterior (Lag) de X__1, por lo que el código de resultado no se ejecutará
sumX__8 se calcula para esta fila, el resultado es el valor actual de sumX__8 que es 0, agregado al valor de la fila 2 de X__8 que es 0 para un resultado de 0
El valor de las filas para X__9 se calcula como el valor de la fila 2s de X__7, que es 20 y resta el valor actual de sumX__8 que es 0 para un valor resultante de 20.
Este proceso continúa de fila en fila. En la fila 9, aparece el primer valor distinto de 0 de X__8, por lo que el valor de sumX__8 se convierte en 0 + 1 para un valor de 1. La fila 10 agrega uno más a la suma X__8, etc.
La siguiente fila significativa es la fila 20. Durante la ejecución de la fórmula para esta fila, la función IF () "If (: X__1! = Lag (: X__1)" es verdadera. : X__1 es igual a 1001 y el valor anterior (retraso) de X__1 es 1000, por lo tanto, el código resultante de sumX__8 se establece en 0, por lo que la suma acumulada comenzará de nuevo.
Su interpretación cambia a:
La fórmula para X_9
si la fila = 1, entonces suma X_8 = 0
Si X_1 es no es igual al valor anterior de X_1 luego sumX_8 = 0
sumX_8 = sumX_8 + X_8
X__9 se calcula como X_7 - sumX_8
La fórmula para X__10 es más o menos la misma que X__9, así que usando su interpretación, con mis modificaciones es
La formula para X_10
si Row = 1 entonces theSum = 0
si X_1 lo hace no es igual al valor anterior de X_1 theSum = 0
theSum = TheSum + X_8
X__10 se establece haciendo referencia al valor de la variable theSum
Re: Crear FórmulaLas fórmulas complejas son bastante difíciles de crear con el creador de fórmulas. Entonces, mi regla general es que si vas a tener varias líneas de cálculo, utilizo el editor de scripts dentro de Formula Creator.
Si hace doble clic en el cuadro que tiene la frase "sin fórmula"

Verá un cuadro de entrada que le permitirá escribir una sola línea ... o un par de líneas

Pero si hace clic en el objeto en la esquina superior derecha del cuadro

Verá el Editor de secuencias de comandos, donde puede ingresar fácilmente la secuencia de comandos completa
