¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Tengo un problema al programar el código JSL para dos funciones (ver captura de pantalla) que actualmente tengo en Excel pero quiero transferir a JMP. Los datos se encuentran en el archivo adjunto. JMP_Prueba_Promedio2.xlsx y las funciones que deseo transferir a JMP son las siguientes:
- columna VS tiene un CONTAR.SI función; =CONTAR.SI(C3:N3,"-1")
- Quiero saber el número de instancias -1 aparece en cada fila (por ejemplo, en la fila 3, el número de instancias de -1 es 2). Columna m(AB) se ignora en la función pero es importante ya que es parte de la secuencia de datos.
- columna PD tiene un FÓSFORO función; =(COINCIDIR("-1",C3:N3,0))+1
- Quiero saber dónde aparece la primera instancia de -1 en cada fila (por ejemplo, en la fila 3 aparece el primer -1 en columna m(LM) o la columna 12 al considerar columnas m(AB) a m(MN) ). Columna m(AB) se ignora en las funciones pero es importante ya que es parte de la secuencia de datos.
Me gustaría saber cómo escribir estas funciones en JSL para que pueda actualizar mi tabla JMP y no tener que completar los cálculos en Excel y luego traer los resultados a mi tabla JMP.
Cualquier ayuda sería muy apreciada.
Gracias.
Miguel
Data as found in file JMP_Test_Average2.xlsxData as found in file JMP_Test_Average2.xlsxDatos tal como se encuentran en el archivo JMP_Test_Average2.xlsx
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> new Column</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"VS"</SPAN><SPAN class="token punctuation">,</SPAN> formula<SPAN class="token punctuation">(</SPAN>nrows<SPAN class="token punctuation">(</SPAN><SPAN class="token function">Loc</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token function">Evallist</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">{</SPAN><SPAN class="token punctuation">:</SPAN>AB<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>BC<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>CD<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>DE<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>EF<SPAN class="token punctuation">}</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token operator">-</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
¿Cómo se debe modificar este código para contar el -1 de la línea y las 2 líneas anteriores (3 líneas en total)?
¡Gracias!
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?¿Cómo puede el código generar automáticamente la tabla de nombres de columna {:AB, :BC, :CD, :DE, :EF} de cada columna en el código?
{:AB, :BC, :CD, :DE, :EF}
¡Gracias!
Probé el siguiente código para tener el mismo efecto, pero aún no se genera automáticamente.
Evallist({Como columna(1),Como columna(2),Como columna(3),Como columna(4),Como columna(5)})
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?//this gives you a vector of items that are -1
vector_of_neg1 = loc(Aslist(:AB[row()-3::row()]`), -1);
//then you just have to select the last one
n = nitems(vector_of_neg1);
if(n,
vector_of_neg1[n]
, //else 0
0
);
O puede usar el argumento de inicio para mirar desde atrás.
Contains( :AB[Index( Row() - 3, Row() )] , -1, -1 )
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?¡Gracias Jim!
x=5-Contains(Eval List(:ab[Index(Row(),Row()-3)]),-1);
Si(x==5,0,x);Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Esta podría ser la fórmula que estás buscando.
x = 5 - Contains( Eval List( :ab[Index( Row(), Row() - 3 )] ), -1 );
If( x == 5, x = 0 );
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Intenté escribir un código como este, pero no funcionó.

Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?hola ! me muero por saber:
Si la columna "AB" tiene más de un "-1", ¿cómo averiguar el número de filas que están dentro del rango del último "-1" en este rango?
¡Gracias!

Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Aquí encuentro la respuesta y resuelvo mis propios problemas. ¡Gracias!
Contiene (Lista de evaluación (: BC [Índice (Fila () -3, Fila ())]), -1)Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Gracias por tu ayuda también Jim, tú y Vince resolvieron mi problema.
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Gracias por tu ayuda, lo aprecio mucho.
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Aquí están las 2 fórmulas que se me ocurrieron para replicar su hoja de cálculo
Para YS
Sum(
:Name( "m(AB)" ) == -1,
:Name( "m(BC)" ) == -1,
:Name( "m(CD)" ) == -1,
:Name( "m(EF)" ) == -1,
:Name( "m(FG)" ) == -1,
:Name( "m(GH)" ) == -1,
:Name( "m(HI)" ) == -1,
:Name( "m(IJ)" ) == -1,
:Name( "m(JK)" ) == -1,
:Name( "m(KL)" ) == -1,
:Name( "m(LM)" ) == -1,
:Name( "m(MN)" ) == -1
)
para EP
Contains(
Char( :Name( "m(AB)" ) ) || Char( :Name( "m(BC)" ) ) ||
Char( :Name( "m(CD)" ) ) || Char( :Name( "m(EF)" ) ) ||
Char( :Name( "m(FG)" ) ) || Char( :Name( "m(GH)" ) ) ||
Char( :Name( "m(HI)" ) ) || Char( :Name( "m(IJ)" ) ) ||
Char( :Name( "m(JK)" ) ) || Char( :Name( "m(KL)" ) ) ||
Char( :Name( "m(LM)" ) ) || Char( :Name( "m(MN)" ) ),
"-1"
)
Re: ¿Cómo transfiero las funciones COUNTIF y MATCH de Excel a JMP?Esto debería darle una idea básica.
Names Default to here(1);
dt = new table("Test", add rows(10),
New Column("AB", formula(if(random uniform()<=.8, 1, -1))),
New Column("BC", formula(if(random uniform()<=.8, 1, -1))),
New Column("CD", formula(if(random uniform()<=.8, 1, -1))),
New Column("DE", formula(if(random uniform()<=.8, 1, -1))),
New Column("EF", formula(if(random uniform()<=.8, 1, -1))),
);
cols = dt << Get Column Reference(dt << Get Column Names);
dt << new Column("VS", formula(nrows(Loc(Evallist({:AB, :BC, :CD, :DE, :EF}), -1))));
dt << New Column("PD", formula(Contains(Evallist({:AB, :BC, :CD, :DE, :EF}), -1)));