Thsi is just an add on to Jeff's response.
You can also do this with a script. Note the column names are the target column name, with a counter and appear immediately after the target column. The attached script shows a few JSL statements (there are other methods as well) to get a handle to how many new columns, etc.
dt << Text to Columns( delimiter( "," ), columns( :ID ) );
However, if you are looking for specific terms like POR and 10LPM, you might have to use other methods like regular expressions or functions like If(Contains(:ID, "POR"), "POR", etc...
It appears line 4 has a different pattern for what appears to be factors or conditions.