This is called One Hot Encoding and yes you can do that with OpenRefine, but not in a single step. I gave an elaborate answer on this question in Can OpenRefine easily do One Hot Encoding? - Stack Overflow.
The main question is, whether you already know the whole set of possible values, or whether you need to determine them automatically.
If you know the set of values beforehand, you can use the following GREL expression:
with(
value.split(/\s*;\s*/),
cell_categories,
forEach(
["value1", "value2", "value3", "value4", "value5"],
category,
if(cell_categories.inArray(category), 1, 0)))
.join(";")
The algorithm is explained in more detail in my StackOverflow answer.
Once you have the One Hot Encoding in a single column, you can split the column into several columns.
Otherwise you first have to simulate a record to be to able access all the values in the value column. This is described in the second recipe in my StackOverflow answer.