Excel 从字符串的任意部分中提取一个单词
Excel extract one word from the any part of the string
我有包含地址的字符串,哪些部分用逗号分隔。
Locksbrook 校区外(巴斯温泉大学)Locksbrook Road, Bath, CB1 3QQ 位于 D19 小区
我想从这个字符串中提取城市的名称,即“Bath”。城市名称始终放在邮政编码之前。
我分两步完成了。首先,我提取了最后一个逗号之前的所有内容,如下所示:
=MID(D19,1,FIND("@",SUBSTITUTE(D19,",","@",LEN(D19)-LEN(SUBSTITUTE(D19,",","")))))
这给了我:
洛克斯布鲁克校区外(巴斯温泉大学)洛克斯布鲁克路,巴斯
接下来,我必须使用以下公式提取新字符串中的最后一个词:
=TRIM(RIGHT(SUBSTITUTE(AA5," ",REPT(" ",100)),100))
这几乎给了我最后的结果:
沐浴,
不过,我想只用 1 次操作就可以完成。
有可能吗?
我在这里找到了一些公式,它应该必须从字符串中提取任何单词(第n个单词),但遗憾的是,它不适用于我的情况。
https://exceljet.net/formula/extract-nth-word-from-text-string
=TRIM(MID(SUBSTITUTE(D19," ",REPT(" ",LEN(D19))), (N-1)*LEN(D19)+1, LEN(D19)))
它终于给了我#NAME?
。
此外,我担心它不会起作用,因为地址字符串会略有不同,包含更多元素,例如街区名称、街道名称、城市、邮政编码或仅包含街道名称、城市和邮政编码。
有什么方法可以从最后一个逗号之前(最终逗号之前)的字符串中只提取一个部分吗?
你可以试试:
=FILTERXML("<t><s>"&SUBSTITUTE(D19,", ","</s><s>")&"</s></t>","//s[position()=last()-1]")
xpath 表达式 //s[position()=last()-1]
告诉函数 return 位置索引倒数第二个 s 节点。
有关 FILTERXML()
的更多信息以及对 return 感兴趣子字符串的某些 xpath 的使用,您可能会发现 有趣。
你可以试试这个:
=MID(A2, SEARCH(",",A2) + 1, SEARCH(",",A2,SEARCH(",",A2)+1) - SEARCH(",",A2) - 1)
从这里开始:https://www.ablebits.com/office-addins-blog/2016/06/01/split-text-string-excel/
我有包含地址的字符串,哪些部分用逗号分隔。
Locksbrook 校区外(巴斯温泉大学)Locksbrook Road, Bath, CB1 3QQ 位于 D19 小区
我想从这个字符串中提取城市的名称,即“Bath”。城市名称始终放在邮政编码之前。
我分两步完成了。首先,我提取了最后一个逗号之前的所有内容,如下所示:
=MID(D19,1,FIND("@",SUBSTITUTE(D19,",","@",LEN(D19)-LEN(SUBSTITUTE(D19,",","")))))
这给了我:
洛克斯布鲁克校区外(巴斯温泉大学)洛克斯布鲁克路,巴斯
接下来,我必须使用以下公式提取新字符串中的最后一个词:
=TRIM(RIGHT(SUBSTITUTE(AA5," ",REPT(" ",100)),100))
这几乎给了我最后的结果:
沐浴,
不过,我想只用 1 次操作就可以完成。
有可能吗?
我在这里找到了一些公式,它应该必须从字符串中提取任何单词(第n个单词),但遗憾的是,它不适用于我的情况。
https://exceljet.net/formula/extract-nth-word-from-text-string
=TRIM(MID(SUBSTITUTE(D19," ",REPT(" ",LEN(D19))), (N-1)*LEN(D19)+1, LEN(D19)))
它终于给了我#NAME?
。
此外,我担心它不会起作用,因为地址字符串会略有不同,包含更多元素,例如街区名称、街道名称、城市、邮政编码或仅包含街道名称、城市和邮政编码。
有什么方法可以从最后一个逗号之前(最终逗号之前)的字符串中只提取一个部分吗?
你可以试试:
=FILTERXML("<t><s>"&SUBSTITUTE(D19,", ","</s><s>")&"</s></t>","//s[position()=last()-1]")
xpath 表达式 //s[position()=last()-1]
告诉函数 return 位置索引倒数第二个 s 节点。
有关 FILTERXML()
的更多信息以及对 return 感兴趣子字符串的某些 xpath 的使用,您可能会发现
你可以试试这个:
=MID(A2, SEARCH(",",A2) + 1, SEARCH(",",A2,SEARCH(",",A2)+1) - SEARCH(",",A2) - 1)
从这里开始:https://www.ablebits.com/office-addins-blog/2016/06/01/split-text-string-excel/