Jim (txnelson) provided you the solution to your problem. This is just an added hint. The data looks like a within wafer (litho, implant, test ?) experiment. Your problem is the most commonly made mistake with Split. As Jim noted, you need a unique group specification. Each defined group gets 1 row.
I am guessing based upon the portion of the table you displayed that this might be the specification you might need using JSL. If you are doing this via the user interface, specify the columns accordingly. If each object "gets" all 3 steps, then use this:
dt << Split(
Split By( :Step ),
Split( :Shift ),
Group(:expNum, :WAFERNUM, :Design, :Object, :tgt)
remaining columns( drop all )
);