提取 Excel 中空格之间的值

提取 Excel 中空格之间的值

我想在 Excel 中提取空格之间的值并想知道如何做到这一点。

我已经尝试过使用

=TRIM((MID(E117,FIND(" ",E117)+1,FIND(" ",E117,FIND(" ",E117)+1)-(FIND(" ",E117))))) 

这对于空格后的第一个值工作正常,但我不确定如何引用下一个空格。

我需要做的是从字符串中提取值: S EP M to BG 1 DIR

我需要为以下每一项设置单独的列:S,,,EPMBG

数据截图

有人可以帮忙吗?

答案1

因为你需要公式,所以我建议使用这个:

在此处输入图片描述

怎么运行的:

  • 您需要在 L1:S1 中插入辅助值,取决于空格分隔的文本/单词的数量。

  • 单元格 L2 中的公式:

    =TRIM(MID(SUBSTITUTE($K2," ",REPT(" ",LEN($K2))),(L$1-1)*LEN($K2)+1,LEN($K2)))
    

注意:

  • 填写范围内的公式。

  • 当文本/单词由其他分隔符(如逗号/斜线/破折号)分隔时,可以使用此公式。

  • 编辑本段SUBSTITUTE($K2,","

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


另一种可能的方法是“文本到列”向导。

  • 选择 K2:K4 中的数据。
  • 从数据选项卡中点击“文本到列”。
  • 选择选项“分隔”。
  • 在下一个屏幕上单击“空间”。
  • 在下一个屏幕中,选择目标单元格并单击确定完成。

答案2

在 VBA 中尝试一下(将j变量的值设置为结束列号)

Function Calc()
  Dim Cols as String
  Dim j As Integer 
  Dim strCell as Variant 
  Dim arrValues
  j = 6
  Cols = "E F G H I J K L M N O P Q R S T U V W X Y Z"
  Cols = Split(Cols," ")
  For k = 1 To j 
    strCell = Range("E" & k).Value
    arrValues = Split(strCell," ")
    For Each strValue in arrValues
      Range(Cols(k) & k).Value = arrValues(k)
    Next
  Next
End Function

相关内容