Hola a todos,
Estoy comprobando varios parámetros para algunos productos, por ejemplo, longitud y ancho. Cada parámetro es una columna con límites de especificación como propiedad de columna. Cada fila es el producto. ¿Cómo puedo crear automáticamente una columna llamada "InSpec" que me indique si el producto (fila) está dentro o fuera de la especificación para todos los parámetros (columnas) con límites de especificación asignados SIN tener que escribir una declaración IF como una fórmula para la columna "InSpec"? Esto se debe a que tengo toneladas de parámetros de especificación para comprobar (guardados en una tabla de especificaciones). Ya usé un bucle for para asignar los límites de especificación como propiedades de columna, así que pensé que podría haber una forma de comprobar todas las especificaciones a la vez.
¡Gracias!
JSL puede hacer esto. Estas publicaciones tienen algunas ideas sobre lo que podría hacer
¿Cómo obtener el número de fila de celdas coloreadas en una columna y asignarle una etiqueta (por ejemplo, "1") en una columna recién creada? y Grabaciones de Scripters Club: consejos y trucos . Y también existen otros métodos.
Debajo de la línea:
Por favor vota aquí :folded_hands: está dentro de las especificaciones (valor) .
Aquí hay un script que escribí que recorre todas las columnas y, si la columna tiene límites de especificación, crea una nueva columna y establece todas las filas que pasan en 1 y todas las columnas que fallan en 0. También colorea las celdas para los valores que no pasan en rojo.

Names Default To Here( 1 );
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNames = dt << get column names( string, numeric );
For Each( {col}, colNames,
specs = {};
specs = Try( Column( dt, col ) << get property( "spec limits" ), {} );
If( specs != Empty(),
dt << New Column( Column( dt, col ) << get name || " in Spec?", set each value( 1 ) );
lsl = specs["LSL"];
usl = specs["USL"];
inSpec = dt << get rows where( !(As Column( dt, col ) >= lsl & As Column( dt, col ) <= usl ));
If( Length( inSpec ) > 0,
Column( Column( dt, col ) << get name || " in Spec?" )[inSpec] = 0;
Column( col ) << color cells( "Red", inSpec );
);
);
);