[英]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.