1

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

  • 34470 Yucaipa Boulevard Yucaipa, CA 992399
  • 15787 Main Street Hesperia, CA 92345
  • 15109 熊谷路维克多维尔,CA 92345

我想取出 City, State Zip;我正在尝试编写一个公式来完成此操作,但我遇到了麻烦。

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

因此,在上面的示例中,我希望提取以下字符串

  • 尤卡帕,CA 992399
  • 加利福尼亚州赫斯珀里亚 92345
  • 加利福尼亚州维克多维尔 92345
4

4 回答 4

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

然后,对此进行操作MID以获得@直到结束的位置。

于 2013-09-05T05:35:35.553 回答
0

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

这在上瘾提示中更详细地解释了它

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

于 2013-09-05T04:09:07.217 回答
0

我希望这没有被提及:

=TRIM(RIGHT(替代(A1," ",REPT(" ",99)),297))

于 2013-09-05T11:47:50.053 回答
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)
于 2013-09-05T04:18:47.630 回答