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

时间:2013-09-05 03:39:15

标签: string excel

我有一列包含以下地址的单元格:

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

我想撤出City,State Zip;我正在尝试写一个公式来完成这个但我遇到了麻烦。

基本上我正在寻找一种找到昏迷的方法,从右到左读取字符串,然后停在第一个空格;看起来很简单......

所以在上面的例子中我想要提取以下字符串

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

4 个答案:

答案 0 :(得分:0)

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

这在addictivetips

中有更详细的解释

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

答案 1 :(得分:0)

尝试这样的事情:

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

这种搜索的唯一问题是您的数据需要超级干净。在您的示例中,我必须在逗号后立即跳过该空格,但如果您的数据并不总是有空格,则无法正常工作。

根据您的评论,试试这个:

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

答案 2 :(得分:0)

您可以使用:

=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

来自您的测试数据。

如果你的文字中有@符号,你可以尝试这样做:

=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," ","")))。这一位是用@替换最后一个空格实例。 SUBSTITUTE的第4个参数给出了要替换的空格的实例,LEN(Text)-LEN(SUBSTITUTE(Text," ",""))给出了文本中的空格数。作为此部分的结果,您得到34470 Yucaipa Boulevard@Yucaipa,

然后,对此进行MID以获取@的位置直至结束。

答案 3 :(得分:0)

我希望没有提到这一点:

= TRIM(右(替换(A1,“”,REPT(“”,99)),297))