Based on this question, I was able to get a script to create a yield table.
Solved: Process Screening By Groups - JMP User Community
One flaw in this approach is that any grouping item that has only 1 value is absent from the finished table. For example, if the data has multiple wafers from only one lot, the wafer numbers report but the lot does not.

By the way, I get around this presently by adding a bogus value, doing the process screening and then removing the bogus value afterwards.
dt << Add Rows( 1 );
rowz = N Rows( dt );
:LOT[rowz] = 1;
ps = dt << Process Screening(
Process Variables( Eval( SpecCols ) ),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" ),
Within Sigma( 0 ),
Overall Sigma( 0 ),
Stability Index( 0 ),
Mean( 0 ),
Show Tests( 0 ),
Test 1( 0 ),
Out of Spec Rate( 0 ),
Latest Out of Spec( 0 ),
Cpk( 0 ),
Ppk( 0 )
);
dt_result = Report( ps )[Outline Box( "Process Screening" ), Table Box( 1 )] <<
Make Into Data Table;
ps << close window;
dt << Delete Rows( rowz );