如何從 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 個文字。

方法一:

在此輸入影像描述

  • 單元格中的公式J16

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

注意

  • 2*255確定文字的位置,在 中J135009是第二個單字/文字。

  • 由於20000101000該位置是第四個,因為公式,在其之前算作第三個,因此對於單元格中的公式,將中的公式J17替換2*2554*255和。6*255-1.8J18


方法二:

它由VBA巨集組成,是一個UDF(使用者定義函數)。

  • 按任一Alt+F11或者右鍵S表 TAB 和彈出式選單中的點擊檢視程式碼取得 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。

相關內容