I think the solution is to first stack the 2 groups of columns, and then to split the columns by the stacked bin values.
My Sample data table......your data, just only 4 Chan and 4 #Passed columns
![txnelson_0-1624921385182.png txnelson_0-1624921385182.png](https://community.jmp.com/t5/image/serverpage/image-id/33864i2EF10D398387FE86/image-size/medium?v=v2&px=400)
Go to
Tables=>Stack
and perform a Multiple series stack
![txnelson_1-1624921462792.png txnelson_1-1624921462792.png](https://community.jmp.com/t5/image/serverpage/image-id/33865i4E9EE9DDD5A1227E/image-size/medium?v=v2&px=400)
It creates a table that looks like:
![txnelson_2-1624921611599.png txnelson_2-1624921611599.png](https://community.jmp.com/t5/image/serverpage/image-id/33866i57F2A51ECBE3EC12/image-size/medium?v=v2&px=400)
Now go to
Tables=>Split
and split the data based upon the column called Data that has the Bin values
![txnelson_3-1624921730020.png txnelson_3-1624921730020.png](https://community.jmp.com/t5/image/serverpage/image-id/33867iE882BC814AFA5924/image-size/medium?v=v2&px=400)
It produces the following table which I believe is what you want, minus the exact names for the columns
![txnelson_4-1624921820333.png txnelson_4-1624921820333.png](https://community.jmp.com/t5/image/serverpage/image-id/33868iB410682DD68CE5B6/image-size/medium?v=v2&px=400)
Here is the steps to do the above in a script,
names default to here(1);
dt = Open("Example.jmp");
// → Data Table( "Example" )
Data Table( "Example" ) << Stack(
columns(
:Chan A, :Chan B, :Chan C, :Chan D, :"#Passed A-200"n, :"#Passed B-200"n,
:"#Passed C-200"n, :"#Passed D-200"n
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Number of Series( 2 ),
Contiguous,
Output Table("Stacked")
);
// Split data table
// → Data Table( "Untitled 17" )
Data Table( "Stacked" ) << Split(
Split By( :Data ),
Split( :Data 2 ),
Group( :Batch ),
Remaining Columns( Drop All ),
Sort by Column Property,
Output Table( "Final")
);
Jim