View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Harlan Grove[_2_] Harlan Grove[_2_] is offline
external usenet poster
 
Posts: 1,231
Default Extract specific text

"Harlan Grove" wrote...
"Rick Rothstein (MVP - VB)" wrote...
...
Here is a slightly shorter formula . . .

...
=MID(A1,2+FIND(", ",A1),FIND(" ",A1,2+FIND(", ",A1))-2
-FIND(", ",A1))&MID(A1,FIND(" ",A1,1+FIND(" ",A1)),FIND(", ",A1)
-FIND(" ",A1,1+FIND(" ",A1)))


It won't be shorter when you wrap each A1 reference inside TRIM. Safer to
use TRIM(A1) than just A1.


Then again, if you assume there'd only ever be ", " between last name and
first name, you could use

=REPLACE(LEFT(TRIM(A1),FIND(" ",TRIM(A1),FIND(", ",TRIM(A1))+2)-1),
1,FIND(" ",TRIM(A1),FIND(" ",TRIM(A1))+1),"")

or putting the result in first-name last-name order

=LEFT(MID(TRIM(A1),FIND(", ",TRIM(A1))+2,255),FIND(" ",MID(TRIM(A1),
FIND(", ",TRIM(A1))+2,255)))&REPLACE(LEFT(TRIM(A1),
FIND(", ",TRIM(A1))-1),1,FIND(" ",TRIM(A1),FIND(" ",TRIM(A1))+1),"")