【问题标题】:How to split a string of text in excel based on a given word?如何根据给定的单词在excel中拆分一串文本?
【发布时间】:2019-06-08 18:56:29
【问题描述】:

我在 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中有SPLIT()函数。 =SPLIT(string,"Detroit")

标签: excel string text split


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      相关资源
      最近更新 更多