簡體   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