Excel公式在最后两个逗号之间获取文本

时间:2012-06-13 06:10:08

标签: excel

我在单元格A1中有这些数据:

Majestic Properties Design District, LLC, Ste. 101, 35 NE 40TH ST, Miami, FL 33137

还有其他一些具有这些格式的单元格,例如

Fortune International Realty Iriondo Ecker & Assoc. Inc., Ste 25, 260 Crandon Blvd, Key Biscayne, FL 33149

我想要的输出是

Miami
Key Biscayne

等等

获取我做的Zip和State

=RIGHT(A1,8)

但是现在我需要得到这个城市(即最后两个逗号之间的文字)。

我不想将TEXT用于COLUMN或任何VBA。我想用一个公式。

3 个答案:

答案 0 :(得分:5)

此公式也应该有效,不依赖于邮政编码的长度....

=TRIM(LEFT(RIGHT(SUBSTITUTE(A1,",",REPT(" ",100)),200),100))

答案 1 :(得分:4)

也许这个:

=REPLACE(LEFT(A1,LEN(A1)-10),1,FIND("|",SUBSTITUTE(A1,",","|",LEN(A1)-LEN(SUBSTITUTE(A1,",",""))-1))+1,"")

答案 2 :(得分:2)

您问如何提取夹在单元格中第一个和第二个最右边逗号之间的文本。

从单元格的 left 开始计算字符实例很容易。但是,从 right 开始计数在Excel中是非常困难的。计数越高,越难:通常,如果要查找字符的n实例,则需要键入的工作表公式的长度会像4^n那样呈指数级增长! (如果你想在一个公式中这样做。)

您可能希望看一下类似问题的早期答案。

这些答案显示了如何从右侧确定字符的第一个实例的位置(然后将整个文本提取到其左侧或右侧)。您不仅需要找到,n=2)的第一个第二个实例,因此您的公式将比这些答案中的公式长16倍。同样,这是如果你想在一个公式中做到这一点。

如果有一个包含中间结果的额外单元格是可以接受的,那么你可以这样做:

在单元格A6中:您的地址文本

在单元格A7中,我们删除右边的第一个逗号和之后的所有文本:

=LEFT(A6,FIND(CHAR(1),
 SUBSTITUTE(A6,$A$3,CHAR(1),LEN(A6)-LEN(SUBSTITUTE(A6,$A$3,""))))-1)

在单元格A8中,我们只保留下一个最右边的逗号后的文本:

=TRIM(MID(A7,FIND(CHAR(1),
 SUBSTITUTE(A7,$A$3,CHAR(1),LEN(A7)-LEN(SUBSTITUTE(A7,$A$3,""))))+1,LEN(A7)))

请注意,我将,分隔符存储在单元格A3中,因此很容易更改。

完成。结果如下:

enter image description here

如果您必须只有1个公式且没有包含中间结果的单元格,则在单元格A8的公式中,将A7的每个实例替换为LEFT(A6,FIND(CHAR(1), SUBSTITUTE(A6,$A$3,CHAR(1),LEN(A6)-LEN(SUBSTITUTE(A6,$A$3,""))))-1)。我忘记了Excel中公式长度的限制......