This script will asign "Missing" in the final "Row Pass/Fail" column if 1 or more values are missing.
foundCols = "";
// Loop across the columns and generate the test pass/fails
For( i = 1, i <= N Items( colList ), i++,
spec = Column( EVALdt, colList[i] ) << get property( "Spec Limits" );
EVALdt << clear select;
If( Is Empty( spec ) == 0,
EVALdt << New Column( (Column( EVALdt, colList[i] ) << get name) || " Pass/Fail" );
If( Is Missing( Try( spec["LSL"], . ) ) == 0,
EVALdt << select where( As Column( EVALdt, colList[i] ) < spec["LSL"] );
Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt << get selected rows] = 0 );
);
If( Is Missing( Try( spec["USL"], . ) ) == 0,
EVALdt << select where( As Column( EVALdt, colList[i] ) > spec["USL"], current selection( "extend" ) );
Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt << get selected rows] = 0 );
);
EVALdt << select where( IsMissing( As Column( EVALdt, colList[i] ) ), current selection( "extend" ) );
EVALdt << invert row selection;
Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt << get selected rows] = 1 );
Column( EVALdt, N Cols( EVALdt ) ) << set property( "Value Labels", {0 = "Fail", 1 = "Pass"} );
If( foundCols == "",
foundCols = ":Name(\!"" || (Column( EVALdt, colList[i] ) << get name) || " Pass/Fail\!")",
foundCols = foundCols || ", " || ":Name(\!"" || (Column( EVALdt, colList[i] ) << get name) || " Pass/Fail\!")"
);
);
);
// Create the Row Missing/Pass/Fail
Eval( Parse( "EVALdt << New Column( \!"Row Pass/Fail\!", formula( If( N Missing("||foundCols||") > 1, \!"Missing\!", Min(" || foundCols || " ) == 1, \!"Pass\!", \!"Fail\!" ) ))" ) );