So extrahieren Sie Daten in Anführungszeichen aus einer Zeichenfolge in Excel

So extrahieren Sie Daten in Anführungszeichen aus einer Zeichenfolge in Excel

Ich habe Zeitstempel in Form einer CSV-Datei, in der jede Zeichenfolge wie folgt aussieht:

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

Mein Ziel ist es, die zweite, dritte und vierte Position aus diesem String (ohne die Anführungszeichen) in eine eigene Spalte zu extrahieren:

  • 5009
  • 200001010000
  • -1,8

Das ist mir für die erste Spalte gelungen

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

aber ich habe keine Ahnung, wie ich das für die anderen beiden Positionen machen soll. Ist das ohne VBA machbar?

Vielen Dank im Voraus

A

Antwort1

Ich möchte zwei verschiedene Methoden vorschlagen, um den n-ten Text aus einer Textzeichenfolge in einer Zelle zu extrahieren.

Methode 1:

Bildbeschreibung hier eingeben

  • Formel in Zelle J16:

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

Achtung

  • 2*255bestimmt die Position des Textes in J13, 5009ist das 2. Wort/der 2. Text.

  • Für 20000101000die Position ist es die 4., da die Formel ,davor als 3. zählt. J17Ersetzen Sie also für die Formel in der Zelle 2*255durch 4*255und 6*255für -1.8die Formel in durch J18.


Methode 2:

Es umfasst ein VBA-Makro und ist eine UDF (User Define Function).

  • Drücken Sie entwederAlt+F11oderRKlicken Sie rechts aufSDrücken Sie die TAB-Taste und klicken Sie im eingeblendeten Menü aufCode anzeigenum einen VB-Editor zu erhalten.
  • Copy &PSpeichern Sie diesen Code als Modul.

    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

Bildbeschreibung hier eingeben

  • Formel in Zelle J3:=SUBSTITUTE(J1,CHAR(34),"")
  • Geben Sie diese Formel in die Zelle ein J5:=FindWord(J3,2)

Achtung

  • Diese Formel 2bestimmt das zweite Wort/den zweiten Text in der Zelle, sodass das nächste folgt, =FindWord(J3,3)und so weiter.

Sie können die VERKETTUNG verwenden, wenn Sie alles in einer Zelle benötigen.

verwandte Informationen