Excel formula 如何在excel中提取地址?

Excel formula 如何在excel中提取地址?,excel-formula,worksheet-function,Excel Formula,Worksheet Function,我在一个单元格中有地址,我想在同一行的不同单元格中提取它们。有些单元格有四行地址,有些单元格有三行地址。我能够很容易地使用文本到列和各种分隔符来分割有三个分隔符的列,但没有四个分隔符的列 在此处输入图像描述 在第一个例子中,我有四行,第二个有三行 Anchorage Oncology Centre 3801 University Lake Drive Suite 300-B2 Anchorage, AK 99508 US 我想把上面的分成5个单元。地址、城市、州、邮政编码和国家各一个单元格 A

我在一个单元格中有地址,我想在同一行的不同单元格中提取它们。有些单元格有四行地址,有些单元格有三行地址。我能够很容易地使用文本到列和各种分隔符来分割有三个分隔符的列,但没有四个分隔符的列

在此处输入图像描述

在第一个例子中,我有四行,第二个有三行

Anchorage Oncology Centre
3801 University Lake Drive
Suite 300-B2
Anchorage, AK 99508 US
我想把上面的分成5个单元。地址、城市、州、邮政编码和国家各一个单元格

Anchorage Oncology Centre
3801 University Lake Drive
Suite 300-B2


Anchorage

AK 

99508 

US
在下面的第二个例子中

Providence Alaska Medical Center
3200 Providence Drive
Anchorage, AK 99508 US
我想要

Providence Alaska Medical Center
3200 Providence Drive

Anchorage

AK 

99508 

US
这可以用公式来完成吗

到目前为止,我所做的是,完整地址位于单元格
A1
中,我希望它们位于
B1
C1
D1
E1
F1
。我所做的是为我使用的国家做的,邮编,我使用的是中(A2,LEN(A2)-7,5),州
=MID(A2,LEN(A2)-10,2)
。现在我正试图拯救这座城市。城市位于逗号之前,换行符
(Char(10))
之后,地址位于前2或3行。我不知道怎么做

每行之间有一个换行符


谢谢

一个可能的解决方案是

=IF(ROW(A1)<SUMPRODUCT((A$1:A$7<>"")*1),A1,TRIM(MID(SUBSTITUTE(SUBSTITUTE(INDEX(A$1:A$7,SUMPRODUCT((A$1:A$7<>"")*1)),",",)," ",REPT(" ",999)),(ROW(X1)-SUMPRODUCT((A$1:A$7<>"")*1)+1)*999-998,999)))
我添加了一些计算以查找最后一行并消除逗号:

SUBSTITUTE(INDEX(A$1:A$7,SUMPRODUCT((A$1:A$7<>"")*1)),",",)
替换(索引(A$1:A$7,SUMPRODUCT((A$1:A$7“)*1)),“,”,)
如果所有的地址都位于第一行,那么你可以在第一列的地址下面插入公式,然后向下和向右复制。目前,地址可以有7行,所以你必须至少复制到第8行


如果使用
SUBSTITUTE()
可以用新字符替换出现的第n个字符,然后使用
FIND()
返回该字符。例如,如果将
替换为
您的
字符(10)
,则第三次出现时,您可以再次找到该字符,该字符将作为地址的结尾

因此,如果您的完整地址在A1中,那么您可以使用左侧的
提取地址(A1,FIND(“~”,SUBSTITUTE(A1,CHAR(10),“~”,3))


@Overflostacker我希望它们在同一行。完整地址在单元格A1中,我希望它们在B1、C1、D1、E1和F1中。我所做的是针对我使用的国家=右(A2,2),邮政编码,我使用=中(A2,LEN(A2)-7,5),州=中(A2,LEN(A2)-10,2)。现在我正试图从这座城市中抽身。城市位于逗号之前,换行符(Char(10))之后,地址位于前2或3行。“我不知道怎么做。@user176047您在评论中说您希望结果在同一行,但结果的图像显示了列布局-您有责任澄清您想要的内容。完整地址在单元格A1中,我希望它们在B1、C1、D1、E1和F1中。”。我所做的是针对我使用的国家=右(A2,2),邮政编码,我使用=中(A2,LEN(A2)-7,5),州=中(A2,LEN(A2)-10,2)。现在我正试图拯救这座城市。城市位于逗号之前,换行符(Char(10))之后,地址位于前2或3行。我不知道怎么做。谢谢。我从不同的单元格动态传递换行符2或3,并提取地址和城市。我“包装文本”的地址,它是完美的。很高兴我可以帮助!打勾表示我的答案有帮助,我将不胜感激!
SUBSTITUTE(INDEX(A$1:A$7,SUMPRODUCT((A$1:A$7<>"")*1)),",",)