excel - 修剪函数的 Excel IF 语句
问题描述
下午好,
如果可能的话,我想有一个固定的修剪地址。
我的地址是:
** 15-21 Bournemouth rd, Aberdeen, AB11 6YA**
我想摆脱邮政编码并保持这样的地址形式:
15-21 伯恩茅斯路,阿伯丁,
在这种情况下,我必须使用左边的 TRIM 功能,我做了什么。
我尝试了这两个公式:
=LEFT(TRIM(D18),FIND("^",SUBSTITUTE(TRIM(D18)&" "," ","^",4))-2)
和
=TRIM(LEFT(D18, FIND("~",SUBSTITUTE(D18, " ", "~",5)&"~")))
这给了我结果:
15-21 Bournemouth rd, 阿伯丁
15-21 伯恩茅斯路,阿伯丁,
然后就好了。我很开心。
虽然有时我的地址带有自己的前提名称,如下所示:
21-23 Regis House 15-21 Bournemouth rd, Aberdeen, AB11 6YA
然后问题变得更加复杂,因为我无法应用这些公式(我必须手动更改它们,这是我不想要的)。
在相同公式参数的结果中,我得到了相应的结果:
21-23 瑞吉楼 15-2
23 瑞吉大厦,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。
我该如何解决?
解决方案
如果我们可以假设您的邮政编码始终遵循字符串中的最后一个逗号,您可以使用以下内容提取最后一个逗号之前的所有内容:
=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
推荐阅读
- python - 集合中的 CVXPY 等式约束
- ios - IOS Native not Run on real device
- javascript - goodreads API 提供了 Cross-Origin Request Blocked: javascript 中的错误
- python - 如果所有列都分配了对象,如何区分熊猫中的列数据类型
- shippo - Shippo - Python Package Async Issue
- reactjs - 如何使用 Typescript 在不丢失任何道具的情况下键入样式组件?
- c - 在 C 中非常快速地发送多个包
- c# - Image not loading from directory where users upload images, no error generated
- xaml - 使用 xamarin 滑入和滑出
- java - How Remote Debugging Works Internally