Excel 按空格(或任意字符)拆分文本单元格,以获得任意数量的单词,并包含重复的单词

Excel 按空格(或任意字符)拆分文本单元格,以获得任意数量的单词,并包含重复的单词,excel,split,Excel,Split,我有一个Excel文件,列中有一些文本,我需要用一个新短语替换掉一些单词,但保留原始文本的某些部分。为了让我的用户保持简单,我想允许按原始单词进行过滤,这意味着每个单词需要一列。Excel的“文本到列”功能可能会有所帮助,但我没有为此烦恼,因为我听说您需要指定列数 长话短说,以下是我的想法: 源单元=A2 带第一个单词的列:B2 包含第二个单词的列:C2 A2:这是一些示例文本 B2:=IFERROR(左(A2,FIND(“,A2)),“”) C2:=IFERROR(左图(替换为MID($A

我有一个Excel文件,列中有一些文本,我需要用一个新短语替换掉一些单词,但保留原始文本的某些部分。为了让我的用户保持简单,我想允许按原始单词进行过滤,这意味着每个单词需要一列。Excel的“文本到列”功能可能会有所帮助,但我没有为此烦恼,因为我听说您需要指定列数

长话短说,以下是我的想法:


源单元=A2

带第一个单词的列:B2

包含第二个单词的列:C2


A2:这是一些示例文本

B2:=IFERROR(左(A2,FIND(“,A2)),“”)

C2:=IFERROR(左图(替换为MID($A2,FIND(B2,$A2),LEN($A2)-FIND(B2,$A2)),B2“”,FIND(“),替换为MID($A2,FIND(B2,$A2),LEN($A2)-FIND(B2,$A2)),B2“),”)

D2:从C2右侧填充


C2中的这些乱七八糟的东西基本上是根据前一个单元格中的单词切碎源单元格(A2)。因此,B2正在寻找它看到的第一个空格,并将字符串的其余部分扔掉,只留下单词“This”。C2正在查看B2,并从A2的值中删除它看到的单词,然后查找下一个空格。D2将查看C2,以此类推。不幸的是,当有一个重复的单词时,它就失效了

如果我们将A2中的示例文本更改为“这是一些示例文本,它是一个问题吗?”(“is”重复),它会在正确填写时反复重复“is”、“some”、“example”、“text”等词

对于我目前的任务,我并不真的需要一个答案,但我希望能找到一个完整的解决方案,因为我在任何地方都没有找到一个好的解决方案


希望这对别人有帮助

这里有一种可能使用一些外观不那么难看的VBA:

Sub splitCell(source As Range, delimiter As String, target As Range)
    'Takes value of source range and splits it by the delimiter horizontally
    'starting at the target range.
    Dim text() As String
    text = Split(source.Value, delimiter)
    For x = LBound(text) To UBound(text)
        target.Offset(0, x).Value = text(x)
    Next
End Sub

'Sample Call
Sub Test()
    With ThisWorkbook.Sheets(1)
        splitCell .Range("A2"), " ", .Range("B2")
    End With
End Sub