我在单元格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。我想用一个公式。
答案 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
中,因此很容易更改。
完成。结果如下:
如果您必须只有1个公式且没有包含中间结果的单元格,则在单元格A8
的公式中,将A7
的每个实例替换为LEFT(A6,FIND(CHAR(1), SUBSTITUTE(A6,$A$3,CHAR(1),LEN(A6)-LEN(SUBSTITUTE(A6,$A$3,""))))-1)
。我忘记了Excel中公式长度的限制......