【问题标题】:Excel IF statement for trim function修剪函数的 Excel IF 语句
【发布时间】:2020-05-20 15:06:25
【问题描述】:

下午好,

如果可能的话,我希望有一个固定的修剪地址。

我的地址是:

** 15-21 Bournemouth rd, Aberdeen, AB11 6YA**

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

15-21 Bournemouth rd, Aberdeen,

在这种情况下,我必须使用左侧的 TRIM 功能,我做了什么。

我试过这两个公式:

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

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

这给了我结果:

15-21 Bournemouth rd, Aberdeen

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

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

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

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

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

返回#VALUE

我该如何解决?

【问题讨论】:

  • 如果您可以假设邮政编码将始终跟随 last 逗号,您可以使用该逻辑来提取您的字符串
  • 我知道逻辑,但我不知道这个公式。

标签: excel if-statement excel-formula street-address


【解决方案1】:

如果我们可以假设您的邮政编码总是在字符串中的最后一个逗号之后,您可以使用以下内容提取最后一个逗号之前的所有内容:

=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

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2019-05-18
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多