如何从 Excel 中的字符串中提取引号中的数据

如何从 Excel 中的字符串中提取引号中的数据

我有一个 csv 文件形状的时间戳,其中每个字符串如下所示:

TT_TU_MN009,"5009","200001010000","-1.8","3","4"
TT_TU_MN009,"5009","200001010200","-1.7","10","1"
TT_TU_MN009,"5009","200001011400","1","10","1"
...

我的目标是从该字符串(不带双引号)中提取第二、第三和第四个位置到它自己的列中:

  • 5009
  • 200001010000
  • -1.8

我成功地在第一栏中实现了这一点

=LEFT(A2;SEARCH(",";A2)-1)

但不知道如何对其他 2 个位置进行操作。不使用 VBA 可以实现吗?

先感谢您

A

答案1

我想建议两种不同的方法从单元格中的文本字符串中提取第 n 个文本。

方法 1:

在此处输入图片描述

  • 单元格中的公式J16

    =TRIM(MID(SUBSTITUTE("""" & $J$13& REPT(" ",6),"""",REPT(CHAR(32),255)),2*255,255))
    

注意:

  • 2*255确定文本的位置,在 中J135009第 2 个单词/文本。

  • 由于公式在它之前算作第三个,因此位置是第 4 位,因此将单元格中的公式替换20000101000为,并将中的公式替换为。,J172*2554*2556*255-1.8J18


方法 2:

它包含 VBA 宏,是一个 UDF(用户定义函数)。

  • 按任意键Alt+F11或者R点击年代按 T​​AB 键并从弹出菜单中点击查看代码获取 VB 编辑器。
  • C奥皮&将此代码粘贴为模块。

    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

在此处输入图片描述

  • 单元格中的公式J3=SUBSTITUTE(J1,CHAR(34),"")
  • 在单元格中输入此公式J5=FindWord(J3,2)

注意:

  • 在此公式中,2确定单元格中的第二个单词/文本,以便下一个单词/文本=FindWord(J3,3)依此类推。

如果需要所有内容都在一个单元格中,则可以使用 CONCATENATION。

相关内容