繁体   English   中英

如何根据给定的单词在excel中拆分一串文本?

[英]How to split a string of text in excel based on a given word?

我在 excel 中有一个公司、城市和州的组合列表,每个组合都是一个字符串。 我想根据给定的单词(城市名称)拆分一串单词,结果为两列,一列带有公司名称,另一列带有城市和州。

拆分空格或符号分隔符是行不通的,因为这些公司并非都有一个单词名称,城市名称也类似。

我有数千条记录,也想循环播放。 我已经在 VBA 中尝试过 SPLIT() 函数,但不确定如何循环它。

Initial                     Splitting word  Result 1     Result 2
Clean Choc Detroit MI       Detroit         Clean Choc  Detroit MI
Space Kites Des Moines IA   Des Moines      Space Kites Des Moines IA
Tattoosie Chicago IL        Chicago         Tattoosie   Chicago IL
One for Two New York City NYNew York City   One for Two New York City NY
Limonistas Carlsbad CA      Carlsbad        Limonistas  Carlsbad CA

如果您想避免使用 VBA,以下公式可能适合您:

=LEFT(A2,FIND(B2,A2)-2)

=RIGHT(A2,LEN(A2)-FIND(B2,A2)+1)

您可以将其用作两个函数(一个返回左侧部分,另一个返回右侧部分):

Function split1(str As String, dlmtr As String) As String
Dim pt1() As String
pt1 = Split(str, dlmtr)
split1 = pt1(0)
End Function

Function split2(str As String, dlmtr As String) As String
Dim pt2() As String
pt2 = Split(str, dlmtr)
split2 = dlmtr & " " & pt2(1)
End Function

请注意,预期的分隔符区分大小写

在此处输入图片说明

或作为子程序(根据需要进行调整):

Sub split_strings()
Dim rng As Range
Dim dmltr As String: dmltr = "Detroit"

Set rng = Range("A1")

Dim splt() As String
splt = Split(rng.Value, dmltr)
rng.Offset(0, 1).Value = splt(0)
rng.Offset(0, 2).Value = dmltr & " " & splt(1)
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM