Here is a script that works on the sample data table you provided. BTW, it would be more convenient if you had attached a copy of the data table, rather than having to manually create it manually. Out side of that, I believe the script will work as long as the first 11 columns remain static, the data starts on row 3, and all of the columns after column 11 are considered columns to be processed.
names default to here(1);
dt=current data table();
// Find the number of columns to process
numberOfMeasurements = N Cols(dt) - 11;
// Add the 3 new columns to place the measurements into
dt << Add Multiple Columns( "Rotated", 3,After(:column 11), Character );
// Add in the number of empty rows required for all of the rotations
For(i=N Rows(dt),i>=3, i--,
dt << Add Rows( numberOfMeasurements - 1, after(i) );
);
// Move the data into the required new cells
For( theRow = 3, theRow <= N Rows(dt), theRow = theRow + numberOfMeasurements,
For( theCol = 12 + 3, theCol <= N Cols(dt), theCol++,
:Rotated 1[theRow + theCol-12-3] = column(theCol)[1];
:Rotated 2[theRow + theCol-12-3] = column(theCol)[2];
:Rotated 3[theRow + theCol-12-3] =
column(theCol)[theRow];
)
);
All of the functions used are documented in the Scripting Index
Help==>Scripting Index
Finally, I am providing this script under the assumption that you are new to JMP and therefore as an illustration that JMP JSL can do just about anything you need to do. The community forum is not a place to request individuals to write code for you. It is a group whos purpose is to help JMP users who are having issues. It is assumed that members who as questions are there to learn JMP, so that in the future, they will become more proficient and more independent users of JMP.
Jim