Text anhand von Wörtern auslesen
#1
Hallo zusammen,

ich sitze gerade an einer Excel-Tabelle und möchte mir aus einer langen Zeile einzelne Teile in Spalten auslesen lassen.
Ich habe mich bisher an dem Beitrag Text zwischen 2 Wörtern auslesen orientiert. Allerdings komme ich damit nicht ganz weiter.


Ich habe leider unterschiedlich ausgeprägte Zeilen aus der ich etwas auslesen lassen will: (Liste im Anhang)

{useEventValue: true, eventConditions: [{type: CATEGORY, matchType: EXACT, expression: Reading}, {type: ACTION, matchType: EXACT, expression: 10 seconds}]}

{eventConditions: [{type: CATEGORY, matchType: EXACT, expression: Link}, {type: ACTION, matchType: EXACT, expression: external}, {type: LABEL, matchType: REGEXP, expression: facebook|twitter|plus\\.google}]}

Ich möchte jetzt die Werte für Kategorie, Aktion und Label auslesen lassen.

Für Kategorie habe ich folgende Formel:

=TEIL([@Details];SUCHEN("CATEGORY, ";[@Details])+10;SUCHEN("}, {type";[@Details])-SUCHEN("CATEGORY";[@Details])-10)

Bei Action habe ich:

=TEIL([@Details];SUCHEN("ACTION, ";[@Details])+8;SUCHEN("}]";[@Details])-SUCHEN("ACTION, ";[@Details])-8)

Für die kürzere Zeile passt das auch soweit. Bei der längeren Zeile wird mir noch der Teil für "LABEL" angezeigt den ich eigentlich nicht bei Action drin haben möchte.

Da ich mit einer ziemlich langen Liste arbeite und das auch regelmäßig für verschiedene Konten erstellen muss arbeite ich gerade an einer Vorlage, sodass ich das nicht immer händisch machen muss. Komme hier an der Stelle aber irgendwie nicht weiter.

Kann mir hier jemand vielleicht weiterhelfen?


Angehängte Dateien
.xlsx   Mappe2.xlsx (Größe: 8,56 KB / Downloads: 3)
Top
#2
Hola,

bitte keine Bilder sondern eine xlsx Datei hochladen.

Gruß,
steve1da
Top
#3
Sorry. Hab jetzt die Tabelle angehängt :)
Top
#4
@Katharina

teste mal diesen Code:


Code:
Sub i_Phi()
For i = 2 To Cells(Rows.Count, 4).End(xlUp).Row
   s = InStr(1, Cells(i, 4), "[") + 1
   Tx = Split(Replace(Mid(Cells(i, 4), s, Len(Cells(i, 4)) - 2 - s), "},", "{"), "{")
   For k = 1 To UBound(Tx)
       If Len(Tx(k)) > 4 Then
       Cells(i, 1).Offset(, sp) = Mid(Tx(k), InStrRev(Tx(k), ":") + 2)
       sp = sp + 1
       End If
   Next k
   sp = 0
Next i
End Sub
Top
#5
Hallo @Phi.VBA

danke für dein Feedback!

Wie muss ich das denn machen? (bin leider ein kleiner Excel-Noob!).

Ich habe in der Mappe ALT + F11 gedrückt, dann Doppelklick auf "Diese Arbeitsmappe" und in dem dann geöffneten Fenster hab ich den Code eingegeben.

Als ich das Makro dann ausführen wollte erhalte ich die Fehlermeldung:

"Ungültiger Prozeduraufruf oder ungültiges Argument"

BG
Top
#6
Hallo,

der Code gehört nicht in diese Arbeitsmappe, sondern in ein allgemeines Modul.

Wie und wo fügt man ein Makro bzw. Code ein
Gruß Stefan
Win 10 / Office 2016
Top
#7
@Katharina,

anbei meine Testdatei. Dort könnten weitere Datensätze in die Zellen mit copy/past eingefügt werden.

Grüße


Angehängte Dateien
.xlsm   Katharina Schurr.xlsm (Größe: 14,46 KB / Downloads: 3)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste