I'm not a programmer but it seems that this would be best handled using a UDF.

Would it be possible to write this as a UDF taking these arguments:

=ParseString(cell_ref,num_of_characters)

To be used as:

=ParseString($A2,50)

Or:

=ParseString(A$2,50)

Which could be drag copied across the row or down a column.

Once all the segments have been extracted then the function would start returning blanks.