Excel trim 函数的 IF 语句

Excel IF statement for trim function

下午好,

如果可能的话,我想要一个固定的 trim 地址。

我的地址是:

** 伯恩茅斯路 15-21 号,阿伯丁,AB11 6YA**

我想去掉邮政编码并保持这样的地址形式:

15-21 Bournemouth rd, 阿伯丁,

在这个事件中,我必须使用左边的 TRIM 函数,我就是这样做的。

我试过这两个公式:

 =LEFT(TRIM(D18),FIND("^",SUBSTITUTE(TRIM(D18)&" "," ","^",4))-2)

 =TRIM(LEFT(D18, FIND("~",SUBSTITUTE(D18, " ", "~",5)&"~")))

这给了我结果:

15-21 Bournemouth rd, 阿伯丁

15-21 Bournemouth rd, 阿伯丁,

那就可以了。我很开心。

虽然有时我的地址会带上自己的前提名字,像这样:

21-23 Regis House 15-21 Bournemouth rd, Aberdeen, AB11 6YA

然后问题变得更加复杂,因为我无法应用这些公式(我必须手动更改它们,我不想这样做)。

在我得到相应的相同公式参数的结果中:

21-23瑞吉大厦15-2

23 瑞吉大厦 15-21

这不太好,因为我只需要一个没有邮政编码的完整地址。

我无法手动更改这些公式。最重要的是,当我将它们交换到右侧时,最右侧的内容将被保留。

我在这里找到了一些东西:

Combining trim and if formula

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))), "")

哪个returns#VALUE.

我该如何解决?

IF 我们可以假设您的邮政编码 always 跟在字符串中的最后一个逗号之后 您可以使用下面的内容提取最后一个之前的所有内容逗号:

=MID(A1,1,FIND("@",SUBSTITUTE(A1,",","@",LEN(A1)-LEN(SUBSTITUTE(A1,",","")))))

请注意,这还假设 @ 不会出现在您的任何字符串中。我们基本上想用一个符号替换您的目标逗号,该符号对于任何字符串中的所有其他字符都是唯一的


VBA

如果您愿意 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