Excel函数在第二次出现指定的字符之前返回字符

我想要一个函数来返回单元格中的前两个名字

“琼斯,安娜玛丽”将返回“琼斯安娜”

我试过= LEFT(A1,FIND(“”,A1)-1),但它只返回琼斯。

谢谢

你可以通过使用这个版本获得第二个空间之前的一切

=LEFT(A1,FIND(" ",A1,FIND(" ",A1)+1)-1)

这仍然包括逗号,所以如果你不希望你可以添加一个SUBSTITUTE函数来删除逗号,即

=SUBSTITUTE(LEFT(A1,FIND(" ",A1,FIND(" ",A1)+1)-1),",","")

 =LEFT(SUBSTITUTE(A1," ","-",2),FIND("-",SUBSTITUTE(A1," ","-",2),1)-1) 

我用SUBSTITUTE()函数用连字符replace第二个空格。 然后,我使用了SUBSTITUTEstring上的FIND()函数。

我只是想添加另一个答案,即使有些单元格没有两个或多个空格,也是如此:

= TRIM(LEFT(SUBSTITUTE(A1,“”,REPT(“”,255),2),255))

(来自mikerickson http://www.mrexcel.com/forum/excel-questions/703900-delete-everything-after-second-space-each-cell.html

(当然,如果你使用的是非英语系统,比如说我在瑞典,那么你可能不得不用分号replace掉所有的逗号。)