如何隔离Excel中以空格开头并以逗号结尾的文本string?

我有一列地址如下所示的单元格:

  • 34470 Yucaipa Boulevard Yucaipa,CA 992399
  • 15787 Main Street Hesperia,CA 92345
  • 15109 Bear Valley Road Victorville,CA 92345

我想撤出城市,国家邮编; 我试图写一个公式来完成这个,但我有麻烦。

基本上我正在寻找一种方法来find昏迷, 从右到左读取string ,并停在第一空间; 看起来很简单….

所以在上面的例子中,我正在寻找下面的string

  • Yucaipa,CA 992399
  • Hesperia,CA 92345
  • Victorville,CA 92345

你可以使用这个:

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

这返回:

 Yucaipa, CA 992399 Hesperia, CA 92345 Victorville, CA 92345 

从你的testing数据。

如果你有任何可能的话在你的文本中有@符号,你可以试试这个:

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

说明

=LEFT(A1,FIND(",",A1))给出34470 Yucaipa Boulevard Yucaipa, 。 我们称之为“文本”。

=SUBSTITUTE(Text," ","@",LEN(Text)-LEN(SUBSTITUTE(Text," ",""))) 。 这一点是用@replace空间的最后一个实例。 SUBSTITUTE的第四个参数给出要replace空间的实例,而LEN(Text)-LEN(SUBSTITUTE(Text," ",""))给出文本中的空格数。 这部分的结果是34470 Yucaipa Boulevard@Yucaipa,你得到34470 Yucaipa Boulevard@Yucaipa,

然后,对此做一个MID来获得@的位置直到结束。

在Excel 2010中,可以使用数据function区上的“文本到列”function。

这在上瘾的方面更详细地解释了它

将数据拆分成列后,添加将城市,州和邮政编码连接在一起的新列。 像= CONCATENATE(D2,“”,E2,“”,F2)。

尝试这样的事情:

 =LEFT( RIGHT(A1,LEN(A1)-SEARCH(",",A1)-1), SEARCH(" ",RIGHT(A1,LEN(A1)-SEARCH(",",A1)-1))-1) 

这种search的唯一问题是您的数据需要超净。 在你的示例中,我不得不在逗号之后立即跳过空格,但是如果你的数据并不总是有空格,那么它将无法正常工作。

根据你的意见,试试这个:

 =LEFT( RIGHT(A1,LEN(A1)-SEARCH(" ",A1)), SEARCH(",",RIGHT(A1,LEN(A1)-SEARCH(" ",A1)))-1) 

我希望这个没有提到:

= TRIM(RIGHT(SUBSTITUTE(A1,“”,REPT(“”,99)),297))