By: Tanjim Reza

In reply to Geoff Bartlett.

Hi, GEOFF BARTLETT! We appreciate your thoughtful query.
Workaround 1:
For your first problem (Surname, forename2 forename1), you can use the formula below:
=SUBSTITUTE((RIGHT($B7,LEN($B7)-FIND("^",SUBSTITUTE($B7," ","^",LEN($B7)-LEN(SUBSTITUTE($B7," ",""))))))&" "&(MID($B7,SEARCH(" ",$B7)+1,SEARCH(" ",$B7,SEARCH(" ",$B7)+1)-(SEARCH(" ",$B7)+1)))&" "&(LEFT($B7,SEARCH(" ",$B7)-1)),",", "")

And, for your second problem (Surname, forename2 forename3 forename1) you can use the formula below:
=SUBSTITUTE((RIGHT($B5,LEN($B5)-FIND("^",SUBSTITUTE($B5," ","^",LEN($B5)-LEN(SUBSTITUTE($B5," ",""))))))&" "&(MID($B5,SEARCH(" ",$B5)+1,SEARCH(" ",$B5,SEARCH(" ",$B5)+1)-(SEARCH(" ",$B5)+1)))&" "&"("&(MID($B5,SEARCH(" ",$B5,SEARCH(" ",$B5,1)+1)+1,SEARCH(" ",$B5,SEARCH(" ",$B5,SEARCH(" ",$B5,1)+1)+1)-(SEARCH(" ",$B5,SEARCH(" ",$B5,1)+1)+1)))&")"&" "&(LEFT($B5,SEARCH(" ",$B5)-1)),",", "")

Workaround 2:
Besides, another workflow you can use in this regard. That is:
Step 1: Use the Text to Columns tool from the Data tab for splitting every name.
/text-to-columns-excel/

Step 2: Sort them according to your desired sequence. Use a helper row for that. Use and finally >>

Last Step: Use the CONCATENATE function to combine them in a cell.
/excel-concatenate-function/

Regards,
Tanjim Reza