This is a start
=MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1)))
It returns the position of the first occurrence of one of your search strings
This finds the position of the first space after that point
=FIND(" ",A1,MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1))))
Put those togeather
=MID(A1,MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1))),FIND(" ",A1,MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1))))-MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1))))
Returns your text proceeded by your search string
So you now need to get rid of your search string
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(A1,MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1))),FIND(" ",A1,MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1))))-MIN(IF(ISERROR(FIND("Name",A1)),999,FIND("Name",A1)),IF(ISERROR(FIND("Surname",A1)),999,FIND("Surname",A1)),IF(ISERROR(FIND("Email",A1)),999,FIND("Email",A1)))),"Name",""),"Surname",""),"Email","")
Messy ha?
I would use a userdefined function instead.
Bookmarks