MS Excel - 根据关键字分离文本

MS Excel - 根据关键字分离文本

我需要根据关键字将文本分成不同的列。原始文本在一列中,但我想将预期的子文本分成不同的列。在这种情况下,问题是我在预期的关键字后得到了不同的字符。此外,正如您在下图中看到的,在文本列中,关键字没有排序。

在此处输入图片描述

这是上面的图片电子表格

答案1

VBA 函数和辅助值的组合解决了您的问题:

在此处输入图片描述

怎么运行的:

  • 复制并粘贴此 VBA 代码为模块:

    Function FindWord(Source As String, Position As Integer)
    
     Dim arr() As String
     arr = VBA.Split(Source, " ")
     xCount = UBound(arr)
     If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
     FindWord = ""
      Else
     FindWord = arr(Position - 1)
     End If
     End Function
    
  • 单元格中输入公式R65,然后填充。

    =IFERROR(LOOKUP(SEARCH(R$64,$Q65),{1,12,25,37},{1,2,3,4}),"")
    

編輯:

  • 单元格中的替代公式R65

    =IFERROR(LOOKUP(SEARCH(R$64,$Q65),SEARCH($R$64:$U$64,$Q$65)-2,{1,2,3,4}),"")
    

填写公式。

  • 单元格中输入公式R70,并将其填充。

    =IFERROR(SUBSTITUTE(FindWord($Q65,R65),",",""),""

注意: 此公式适用于 Excel 用户。

編輯:

由于 OP 使用的是 Google Sheet 并且 VBA 宏不支持它,所以我想在单元格中建议一种替代公式R70

=IFERROR(SUBSTITUTE(TRIM(MID(SUBSTITUTE($Q65," ",REPT(" ",LEN($Q65))), (R65-1)*LEN($Q65)+1, LEN($Q65))),",",""),"")

根据需要调整公式中的单元格引用。

答案2

我使用免费的 ExcelRegEx 查找/替换在类似情况下,您可以使用以下公式:

=RegExFind($A2,C$1&"/[a-z]+")

在此处输入图片描述

我与该工具没有任何关系。

相关内容