(Forum) PQ: Datumsangabe aus Text extrahieren

 😉 Quelle:  https://www.office-hilfe.com/support/threads/datumsangabe-rausschneiden.59322/
Stand: 11.10.2024 23:50

Hier der Eröff­nungs­beitrag aus dem Forum:


Hi,
ich habe fol­gen­des Prob­lem.

Ich habe eine sehr große Liste mit Auto­dat­en, um genauer zu sein Typangaben. Hier mal Beispiel­haft um was es geht. (Die Automarke ste­ht in der Zeile davor und ist hier irrel­e­vant.)

147 (937) (01.01 -)
155 (167) (01.92–12.97)
100 Avant (44, 44Q, C3) (08.82–11.90)
80 (89, 89Q, 8A, B3) (06.86–10.91)
A1 Sport­back (8XA, 8XF) (11.11-)

Ihr seht, dass am Ende in Klam­mern immer das Bau­jahr in ver­schiede­nen Vari­anten ste­ht.
Mal nur als „Ab-Bau­jahr” mit oder ohne LEERZEICHEN vor dem Binde­strich:

(01.01 -) oder (11.11-)

oder mal als gesamter Zeitraum, wie (08.82–11.90).

Ihr seht, dass auch bei den Auto­mod­ellen oft­mals noch Werte wie die Typ­beze­ich­nung in Klam­mern ste­ht.

Ich möchte nun gern diese die Bau­jahrw­erte und die Typ­beze­ich­nung (inkl der dazuge­höri­gen Klam­mer­w­erte) einzeln in 2 weit­eren Zellen haben. Ein­mal nur den Auto­typ und ein­mal nur die jew­eilige Angabe zum Bau­jahr.

Ich bekomme das lei­der nicht hin, weil alles was ich mache auch immer die anderen geklam­merten Sachen find­et.

Kann mir da wer bitte helfen?

Tausend Dank! Grüße! Robert


Erst ein­mal mein Hin­weis, dass ich davon aus­ge­he, dass die Automarke nicht in der Zeile darüber son­dern in der Spalte davor ste­ht. Andern­falls würde ich über einen einge­fügten Index die rel­e­van­ten Zeilen her­aus­fil­tern und bear­beit­en.

Im Thread schreibt der Fragesteller in Beitrag #6: „Für dich ist es ver­mut­lich easy, aber wenn ich mir diese erste formel darin anse­he, explodiert echt mein Kopf ^^“ Und da stelle ich wieder ein­mal fest, dass Pow­er Query ein Tool ist, mit dem eine Excel-Auswer­tung begreif­bar­er wer­den kann… 😎

Auf der Basis der von Bosko­Biati in Beitrag #2 erstell­ten Excel-Datei habe ich eine schlanke und IMHO auch gut nachvol­lziehbare PQ-Lösung erstellt, hier der M-Code:

let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Spalte1", type text}}),
    // "Text vor Trennzeichen" und "Vom Ende der Eingabe aus" beachten!
    #"Der Text vor dem Trennzeichen wurde eingefügt." = Table.AddColumn(#"Geänderter Typ", "Text vor Trennzeichen", each Text.BeforeDelimiter([Spalte1], "(", {0, RelativePosition.FromEnd}), type text),
    // Die Suche beginnt am Ende des Zellinhalts!
    // Und ja, es würde auch über "Text nach dem Trennzeichen" gehen.
    #"Der Text zwischen den Trennzeichen wurde eingefügt." = Table.AddColumn(#"Der Text vor dem Trennzeichen wurde eingefügt.", "Text zwischen Trennzeichen", each Text.BetweenDelimiters([Spalte1], "(", ")", {0, RelativePosition.FromEnd}, 0), type text),
    #"Präfix hinzugefügt" = Table.TransformColumns(#"Der Text zwischen den Trennzeichen wurde eingefügt.", {{"Text zwischen Trennzeichen", each "(" & _, type text}}),
    // Bei "Text nach dem Trennzeichen" natürlich nicht erforderlich
    #"Suffix hinzugefügt" = Table.TransformColumns(#"Präfix hinzugefügt", {{"Text zwischen Trennzeichen", each _ & ")", type text}})
in
    #"Suffix hinzugefügt"

Die Über­schriften in der Edi­tor-Tabelle wer­den naturgemäß noch angepasst. 😉


Und hier, beim Stich­wort last but not least find­en Sie noch einen Hin­weis, wo und wie Sie Antworten auf eventuelle Fra­gen oder auch die aus­gear­beit­ete Datei bekom­men kön­nen. Grundle­gen­des zum The­ma M-Code lesen Sie hier im Blog nach.

Dieser Beitrag wurde unter Datum & Zeit, Foren-Q&A, K&K (kurz und knackig ;-) ), Power Query, Spalten bearbeiten abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.