Encontrar columnas y filas consecutivasHola,
Se adjunta la tabla de datos de 2 PARTES, a saber, PARTE-02 y PARTE-03. Cada parte tiene sus propias columnas y filas (ColX, RowY). Deseo usar JSL para identificar la PARTE que tiene columnas o filas consecutivas que aparecen más de 4. Aquí la PARTE-02 es la que tiene filas que aparecen más de 4 veces consecutivas. Quiero que mi resultado sea solo una tabla con PART ID y el resultado como se muestra a continuación.


Automatización y secuencias de comandosRe: Encontrar columnas y filas consecutivasAquí está el JSL que se me ocurrió que crea la nueva tabla y la completa como usted especificó
Names Default To Here( 1 );
dt = Current Data Table();
dtResults = dt <<
summary(
group( :LotLabel, :WaferLabel ),
output table( "Results" ),
Link to Original Data Table( 0 )
);
dtResults << delete columns( :N Rows );
dtResults << New Column( "Results",
character,
set each value( "FAIL" )
);
For Each Row(
dt,
If( Row() >= 4,
If(
Col Moving Average(
:ColX,
weighting = 1,
before = -3,
after = 0,
:LotLabel,
:WaferLabel
) == :ColX |
Col Moving Average(
:RowY,
weighting = 1,
before = -3,
after = 0,
:LotLabel,
:WaferLabel
) == :RowY,
dtResults:Results[dtResults << get rows where(
dtResults:LotLabel == dt:LotLabel &
dtResults:WaferLabel == dt:WaferLabel
)] = "PASS"
)
)
);

Re: Encontrar columnas y filas consecutivasHola Jim, en el conjunto de datos anterior, para la PARTE 01, 02 debería aprobarse. Perdón por la desinformación. Se adjunta un conjunto de datos más grande que incluye PART-01,02,03,17. La Parte 01,02,03 debe aprobarse y solo la PARTE 17 debe fallar. Debería ser como se muestra a continuación, pero su secuencia de comandos indica que PART02,03 también están fallando.

Re: Encontrar columnas y filas consecutivasSí, necesitas cambiar el 4 por 7 y el -3 por -6.
El factor de ponderación brinda la posibilidad de establecer el peso de cada uno de los valores siendo promedio. El valor de 1 indica que se debe utilizar la misma ponderación en cada valor.
Antes = establece el número de filas antes de la fila actual que se utilizarán en el cálculo del promedio móvil.
Después = establece el número de filas después de la fila actual que se utilizarán en el cálculo del promedio móvil.
Finalmente, use el ícono JSL en la parte superior de la Vista previa cuando ingrese JSL a la discusión. Realmente ayuda a los lectores a leer e interpretar el código.
Edité su última respuesta y moví su JSL listado a un cuadro de visualización de JSL.
Re: Encontrar columnas y filas consecutivasHola Jim, en el conjunto de datos anterior, para la PARTE 01, 02 debería aprobarse. Perdón por la desinformación. Se adjunta un conjunto de datos más grande que incluye PART-01,02,03,17. La Parte 01,02,03 debe aprobarse y solo la PARTE 17 debe fallar. Debería ser como se muestra a continuación, pero su secuencia de comandos indica que PART02,03 también están fallando.

Re: Encontrar columnas y filas consecutivas- El uso del promedio móvil de Col como verificación no funcionó, así que lo cambié para usar una desviación estándar en las 7 filas.
- El método que estaba usando para encontrar la fila en la tabla de datos dtResults no funcionaba. Tuve que cambiar a un bucle For() para poder obtener la exactitud requerida.
- Tenía la lógica al revés... Pasar si encontraba los valores en una fila, en lugar de Fallar cuando eso sucedía.
Names Default To Here( 1 );
dt = Current Data Table();
dtResults = dt << summary(
group( :LotLabel, :WaferLabel ),
output table( "Results" ),
Link to Original Data Table( 0 )
);
dtResults << delete columns( :N Rows );
dtResults << New Column( "Results",
character,
set each value( "PASS" )
);
For( i = 1, i <= N Rows( dt ), i++,
If( i >= 7,
If(
Std Dev( dt:ColX[i - 6 :: i] ) == 0 |
Std Dev( dt:RowY[i - 6 :: i] ) == 0,
dtResults:Results[dtResults <<
get rows where(
dtResults:LotLabel == dt:LotLabel[i] & dtResults
:WaferLabel == dt:WaferLabel[i]
)] = "FAIL"
)
)
);
Necesita estudiar el código, no simplemente cortarlo y pegarlo en su script. Debe tener conocimientos suficientes para poder depurar problemas futuros y generar correcciones.
Re: Encontrar columnas y filas consecutivasGracias, Jim. Después de algunos ajustes, funcionó para mí.