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"
...

私の目標は、この文字列から 2 番目、3 番目、4 番目の位置 (二重引用符なし) を独自の列に抽出することです。

  • 5009
  • 200001010000
  • -1.8

私は最初のコラムでこれを達成することができました

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

しかし、他の 2 つの位置でそれを実行する方法がわかりません。VBA なしでも実現可能でしょうか?

よろしくお願いします

答え1

セル内のテキスト文字列から n 番目のテキストを抽出する 2 つの異なる方法を提案したいと思います。

方法1:

ここに画像の説明を入力してください

  • セル内の数式J16:

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

注意

  • 2*255テキストの位置を決定します。 はJ1325009番目の単語/テキストです。

  • 数式は3 番目として20000101000カウントされるため、位置は 4 番目になります。したがって、 の数式 のセルではを に、の数式 のセルでは を に置き換えます。,J172*2554*2556*255-1.8J18


方法2:

VBAマクロで構成され、UDF(ユーザー定義関数)です。

  • どちらかを押してくださいAlt+F11またはRight クリックTABを押してポップアップメニューからコードを表示VB エディターを入手します。
  • オピ &このコードをモジュールとして保存します。

    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セル内の 2 番目の単語/テキストが決定され、次の単語/テキストが決定されます=FindWord(J3,3)

すべてを 1 つのセルに収める必要がある場合は、CONCATENATION を使用できます。

関連情報