acht85
Goto Top

Excel Zelleninhalt anders darstellen

Hallo Community,

ich habe eine Liste in der einige Informationen enthalten sind. Nun wollte ich ein paar "Auswertungen" dieser Informationen machen. Leider passt das Format der Liste nicht um damit zu arbeiten. Deshalb muss ich erst noch einiges basteln, damit ich auch tatsächlich "Auswertungen" machen kann.

Ich habe einige Zellen da stehen die Infos z.B. so drin:
A1: Name/Titel: "M. Meier"/"Dr." Auftrag vom/Eingangsdatum: "10.10.2014"/"13.10.2014"
B1: ausgeführt am: "13.10.2014"
etc.
(Die Anführungszeichen stehen auch wirklich in der jeweiligen Zellen)

Da immer die gleichen Informationen enthalten sind, habe ich nun Name, Titel, Auftrag vom, Eingangsdatum und ausgeführt am als einzelne Spalten angelegt und diese Infos als Überschrift genommen.
Wenn ich den Namen nun in die Spalte Name auslesen will, nutze ich folgenden Formel:
=LINKS(TEIL(A1;1+FINDEN(ZEICHEN(34);A1);LÄNGE(A1));FINDEN(ZEICHEN(34);TEIL(A1;1+ FINDEN(ZEICHEN(34);A1);LÄNGE(A1)))-1)

Das funktioniert auch problemlos. Es wird von Links beginnend nach dem ersten Anführungszeichen gesucht und ab da der Wert bis zum nächsten Anführungszeichen ausgegeben. Wie bekomme ich das denn nun für den Titel oder auch Auftrag vom hin?
Oder gibt es vielleicht eine einfacherer Möglichkeit die Informationen auszulesen?

Ich bin für jede Hilfe echt dankbar.

Content-Key: 253248

Url: https://administrator.de/contentid/253248

Printed on: April 20, 2024 at 11:04 o'clock

Member: Meierjo
Meierjo Oct 28, 2014 at 12:17:35 (UTC)
Goto Top
Hallo X?X?X?X?X

Ist das denn nur 1 Tabelle mit diesen Inhalten?
Wenn ja, kennest du die Funktion "Text in Spalten"?? Damit kannst du Text in mehrere Spalten aufsplitten, und dabei zB Trennzeichen Anführungszeichen Slash etc als Feldtrenner verwenden. Vielleicht in mehreren Schritten trennen, zuerst mal alle Anführungszeichen, dann Slash ....

Gruss Urs
Member: colinardo
colinardo Oct 28, 2014 updated at 12:38:43 (UTC)
Goto Top
Die ist ja wieder die acht85 face-smile
Hättest du mein dir via PM geschicktes Script für das Extrahieren der Outlook-Daten via Regular Expression genutzt müsstest du jetzt nicht die Daten mühevoll in Excel zerpflücken face-wink, habe das ja nicht ohne Grund vorgeschlagen. Damit hättest du die entsprechenden Daten schon in die richtigen Spalten einordnen können, aber da du noch nicht mal in der Lage warst ein paar korrekt formatierte Demo-Daten zu schicken um dir weiter zu helfen ....

Grüße Uwe
Member: Acht85
Acht85 Oct 28, 2014 at 12:52:01 (UTC)
Goto Top
Dein Script ist ohne Fehlermeldung durchgelaufen und hat mir auch die E-Mails vorschoben, doch leider gab es in meiner Tabelle keinerlei Inhalte. Das Blatt ist einfach leer geblieben. :o(
Mittlerweile habe ich ohne RegEx meine Infos "übertragen", jetzt muss ich nur noch das mit dem Format hinbekommen.

Ja, es handelt sich um 1 Tabelle, allerdings könne immer wieder neue Daten hinzukommen.
Das mit "Text in Spalte" habe ich schon versucht. Da ich relativ viele Spalten (A-CA) habe ist es sehr mühsam jede Spalte einzeln zu formatieren. Und sobald ich neue Daten einspielen, müsste ich das ja wieder genauso machen.

Trotzdem schon mal danke für's lesen.
Member: colinardo
colinardo Oct 28, 2014 updated at 14:13:59 (UTC)
Goto Top
Zitat von @Acht85:
Dein Script ist ohne Fehlermeldung durchgelaufen und hat mir auch die E-Mails vorschoben, doch leider gab es in meiner Tabelle keinerlei Inhalte. Das Blatt ist einfach leer geblieben. :o(
Das liegt daran das man halt ohne richtig formatierte Demo-Daten mit Regex aus der ferne nicht gut helfen kann (hier kommte es auf Kleinigkeiten an), die hattest du mir ja vorenthalten, sonst hätte ich dir problemlos helfen können !
Mittlerweile habe ich ohne RegEx meine Infos "übertragen", jetzt muss ich nur noch das mit dem Format hinbekommen.
das hier schreibt deine Daten jeweils einzeln in die Spalten neben Spalte A also in B,C,D,E (vorausgesetzt deine Daten sind immer in Anführungszeichen gesetzt)
Sub SplitData()
    With Sheets(1)
        ' Für alle Zellen in Spalte A  
        For Each cell In .Range("A1:A" & .UsedRange.Rows.Count)  
            'Zelle anhand des Anführungszeichens splitten  
            arrData = Split(cell.Value, """", -1, vbTextCompare)  
            ' wenn die Anzahl der Felder stimmt übertrage die extrahierten Daten in die Spalten der aktuellen Zeile neben Spalte A ( also B,C,D,E)  
            If UBound(arrData) = 8 then
              .Range(cell.Offset(0, 1), cell.Offset(0, 4)).Value = Array(arrData(1), arrData(3), arrData(5), arrData(7))
            End If
        Next
    End With
End Sub
Member: Meierjo
Meierjo Oct 28, 2014 updated at 13:24:14 (UTC)
Goto Top
Hallo

Wenn da immer mehr Datensätze dazukommen, würde ich das mit VBA lösen.
- Hat denn jeder "Datensatz" am Anfang / Ende ein Anführungszeichen??
- Und ist zwischen Name / Dr immer "/" ??

Hast du ein Sheet mit Demo-Daten??
Oder sind die Daten in einem Txt oder CSV Feil, und man kann die Daten anders importieren?

Gruss Urs