Ian is faster than I. Below is a script for the stacked data.
As Ian was alluding, you need to learn more JSL for selecting and getting values from tables and reports. To be prepared for your next script you should read the Help> Books> Scripting Guide chapters "Scripting Platforms" and "Display Trees". This will help you understand the nested structure of JMP reports and learn the syntax to navigate, reference and get.
Note that Ian's script empties values. This script maintains their values them, but excludes them from the analyses.
Names default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_stck = dt << Stack(
columns( :height, :weight ),
Source Label Column( "Var" ),
Stacked Data Column( "Data" )
);
close(dt,NoSave);
obj = Distribution( Column( :Data ), By(:Var) );
//using a lower proportion, .80, to screen something
obj << Tolerance Interval( Alpha( 0.95 ), Proportion( 0.8 ) );
tol_dt = report(obj[1])[OutlineBox(2)]["Tolerance Intervals"][TableBox(1)]<<Make Combined Data Table;
tol_dt << set Name("Tolerance Intervals");
for(i=1, i<=nrow(tol_dt), i++,
str = tol_dt:Var[i];
vlo = tol_dt:Lower TI[i];
vhi = tol_dt:Upper TI[i];
dt_stck << select where(:Var==str & (:Data < vlo | :Data > vhi) ) << hide and exclude(1);
dt_stck << clear select;
);
nw = New Window("Custom Display",
VListBox(
onew = dt_stck << Oneway( Y(:Data), X(:Var)),
text box(),
dbb = tol_dt <<New Data Box()
)
);
dbb << close side panels;
dbb << set max size(410,240);
nw << journal window;