This will do what you need. The trick is to use contains and substr to get the exact substrings that you want.
dt = New Table( "Issues",
Add Rows( 4 ),
New Column( "Description",
Character,
Nominal,
Set Values(
{"Software Issue: System Software; No Response",
"Software Issue: System Software; No Response",
"Electronics Issue: Power Supply; Response 1",
"Computer and User Interface Issue: System Software; Response 2"}
)
)
);
dt << new column("Column B", Character, Nominal,
formula(
colon_pos = contains(:Description, ":");
substr(:Description, 1, colon_pos - 1);
)
);
dt << new column("Column C", Character, Nominal,
formula(
colon_pos = contains(:Description, ": ");
semi_pos = contains(:Description, "; ");
substr(:Description, colon_pos + 2, semi_pos - colon_pos - 2);
)
);