下午好
如果可以的话,我想有一个固定的修饰地址。
我的地址是:** 15-21 Bournemouth rd, Aberdeen, AB11 6YA**。
** 15 -21 Bournemouth rd, Aberdeen, AB11 6YA**。
我想去掉邮编,保留地址表格,像这样。
15 -21伯恩茅斯路,阿伯丁。
在这种情况下,我必须从左边使用TRIM函数,我做了什么。
我尝试了这2个公式。
=LEFT(TRIM(D18),FIND("^",SUBSTITUTE(TRIM(D18)&" "," ","^",4))-2)
和
=TRIM(LEFT(D18, FIND("~",SUBSTITUTE(D18, " ", "~",5)&"~")))
这给我的结果。
阿伯丁,伯恩茅斯路15-21号。
15-21 Bournemouth rd, Aberdeen,
那么是好的。我很开心。
虽然有时候我的地址是和自己的名字一起出现的,比如这样。
21 -23 Regis House 15 -21 Bournemouth rd, Aberdeen, AB11 6YA。
然后问题变得更加复杂,因为我不能应用这些公式(我必须手动改变它们,这是我不希望的)。
在相同的公式参数的结果,我得到相应的。
21 -23 Regis House 15 -2
23 Regis House, 15-21
这不是很好,因为我需要一个完整的地址,而不需要邮政编码。
我不能手动更改这些公式。最重要的是,当我把它们换到右边的时候,那么最右边的东西就会被保留下来。
我在这里发现了一些东西。
TRIM函数的IF语句,net试图将其绘制到我的例子中。
=IF(NOT(SUM(COUNTIF(A18, "*"&{",",","}&"*"))), TRIM(LEFT(SUBSTITUTE(MID(A18,FIND("|",SUBSTITUTE(A18,"-","|",2))+1,LEN(A18)),"-",REPT(" ",LEN(A18))),LEN(A18))), "")
它返回 #VALUE.
如何解决?
IF 我们可以假设您的邮编 始终 字符串中的最后一个逗号,你可以使用下面的方法提取最后一个逗号之前的所有内容。
=MID(A1,1,FIND("@",SUBSTITUTE(A1,",","@",LEN(A1)-LEN(SUBSTITUTE(A1,",","")))))
注意,这也是假设 @
将不会出现在您的字符串中的任何地方。我们主要是想用一个符号来替换您的目标逗号,这个符号对任何字符串中的所有其他字符都是唯一的。
如果您对VBA解决方案持开放态度,您可以使用下面的UDF来获得同样的结果。
Public Function LASTCOMMA(Target As String)
Dim i As Long, Arr
Arr = Split(Target, ",")
For i = LBound(Arr) To (UBound(Arr) - 1)
LASTCOMMA = LASTCOMMA & Arr(i)
Next i
End Function