Excel Power Query – 10 M-Snippets für den Alltag

Excel Power Query - 10 M-Snippets für den Alltag - IT-Glossary

Du willst Daten in Excel sauber aufbereiten, ohne jedes Mal manuell zu klicken. Genau dabei hilft Power Query mit der Sprache M. Mit wenigen Zeilen Code wandelst du Formate, spaltest oder vereinst Spalten, pivotierst Tabellen, baust Lookups und erzeugst sogar eine Datumstabelle.

Der Vorteil: Deine Schritte sind nachvollziehbar, wiederholbar und lassen sich jederzeit anpassen. In diesem Guide bekommst du 10 praxistaugliche M-Snippets, die du direkt in den Erweiterten Editor kopieren kannst. Ich erkläre kurz wann sie helfen und wie du sie anpasst.

Was ist Power Query M – kurz erklärt

Power Query ist der ETL-Baustein in Excel. Die Sprache M beschreibt jeden Schritt als Ausdruck in let-in-Blöcken. Du arbeitest mit Listen, Tabellen, Records und Funktionen wie Table.TransformColumns oder List.Dates. Wichtig: Jeder Schritt hat einen Namen, auf den der nächste Schritt aufbaut.


Die 10 Snippets für deinen Alltag

1) Datentyp sicher setzen – inklusive Gebietsschema

Warum: Falsche Datentypen machen Berechnungen unzuverlässig.
Was es macht: Setzt Datum, Zahl und Text deterministisch mit Locale.

let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    Typen  = Table.TransformColumnTypes(
        Quelle,
        {{"Datum", type date}, {"Betrag", type number}, {"Kunde", type text}},
        "de-DE"
    )
in
    Typen

Tipp: Das dritte Argument „de-DE“ sorgt dafür, dass z. B. 31.12.2025 korrekt erkannt wird.


2) Texte säubern – Leerzeichen, Steuerzeichen, Großschreibung

Warum: Inkonsistente Texte verhindern Joins.
Was es macht: Trimmt, säubert und normiert Groß/Klein.

let
    Quelle = #"Vorheriger Schritt",
    Clean  = Table.TransformColumns(
        Quelle,
        {{"Name", each Text.Proper(Text.Trim(Text.Clean(_))), type text}}
    )
in
    Clean

Ergebnis: “ mÜLLER GmbH „ wird zu „Müller GmbH“.


3) Spalten splitten und später wieder vereinen

Warum: Du willst Vor- und Nachnamen getrennt, später aber wieder als Anzeige zusammen.
Was es macht: Split am Leerzeichen, Combine mit Trennzeichen.

let
    Quelle = #"Vorheriger Schritt",
    Split  = Table.SplitColumn(Quelle, "Kontakt", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Vorname","Nachname"}),
    Join   = Table.CombineColumns(Split, {"Vorname","Nachname"}, Combiner.CombineTextByDelimiter(" ", QuoteStyle.None), "Kontakt_Anzeige")
in
    Join

4) Unpivot – aus Spalten werden Zeilen

Warum: Monatsspalten machen Auswertungen schwer.
Was es macht: Entpivottiert alle außer den ID-Spalten.

let
    Quelle  = #"Vorheriger Schritt",
    Unpivot = Table.UnpivotOtherColumns(Quelle, {"Artikel","Kategorie"}, "Monat", "Umsatz")
in
    Unpivot

Ergebnis: Spalten Jan, Feb, Mrz werden zu Zeilen in Monat mit Wert Umsatz.


5) Pivot mit Aggregation

Warum: Du willst aus Zeilen wieder Spalten erzeugen, z. B. Kategorie pro Jahr.
Was es macht: Pivot mit Summe als Aggregation.

let
    Quelle = #"Vorheriger Schritt",
    Pivot  = Table.Pivot(Quelle, List.Distinct(Quelle[Kategorie]), "Kategorie", "Umsatz", List.Sum)
in
    Pivot

6) Lookup zwischen Tabellen – Join und Expand

Warum: Du brauchst Attribute aus einer Stammtabelle.
Was es macht: Left Join über ID und Expand der gewünschten Felder.

let
    A = #"Faktentabelle",
    B = #"Stammdaten",
    Join  = Table.NestedJoin(A, {"KundenID"}, B, {"KundenID"}, "Stamm", JoinKind.LeftOuter),
    Expand= Table.ExpandTableColumn(Join, "Stamm", {"Kundenname","Region"}, {"Kundenname","Region"})
in
    Expand

Hinweis: Vorher Spalten säubern und Datentyp angleichen, sonst schlagen Joins fehl.


7) Teilmengen schnell machen – partieller Filterindex

Warum: Du brauchst oft nur aktive Datensätze.
Was es macht: Filtert auf Status und entfernt Fehlerzeilen.

let
    Quelle   = #"Vorheriger Schritt",
    Aktiv    = Table.SelectRows(Quelle, each [Status] = "aktiv"),
    FehlerFrei= Table.RemoveRowsWithErrors(Aktiv)
in
    FehlerFrei

8) Fehlende Werte füllen und Standard setzen

Warum: Lücken brechen Berechnungen.
Was es macht: Fill Down und Nulls ersetzen.

let
    Quelle   = #"Vorheriger Schritt",
    FillDown = Table.FillDown(Quelle, {"Kategorie"}),
    Ersetzen = Table.ReplaceValue(FillDown, null, 0, Replacer.ReplaceValue, {"Menge","Umsatz"})
in
    Ersetzen

9) Datumstabelle generieren – Jahr, Monat, Quartal

Warum: Zeitfunktionen brauchen eine saubere Datumstabelle.
Was es macht: Baut Liste von Daten, wandelt in Tabelle, fügt Jahr/Monat/Quartal hinzu.

let
    Start  = #date(2023,1,1),
    Ende   = #date(2025,12,31),
    Liste  = List.Dates(Start, Duration.Days(Ende-Start)+1, #duration(1,0,0,0)),
    Tabelle= Table.FromList(Liste, Splitter.SplitByNothing(), {"Datum"}),
    MitTyp = Table.TransformColumnTypes(Tabelle, {{"Datum", type date}}),
    Jahr   = Table.AddColumn(MitTyp, "Jahr", each Date.Year([Datum]), Int64.Type),
    MonatN = Table.AddColumn(Jahr, "MonatNr", each Date.Month([Datum]), Int64.Type),
    Monat  = Table.AddColumn(MonatN, "Monat", each Date.ToText([Datum], "yyyy-MM")),
    Quart  = Table.AddColumn(Monat, "Quartal", each "Q" & Number.ToText(Date.QuarterOfYear([Datum])))
in
    Quart

10) Robuste Fehlerbehandlung – try otherwise

Warum: Eingabedaten sind selten perfekt.
Was es macht: Wandelt sicher und setzt Fallback statt Fehlermeldung.

let
    Quelle = #"Vorheriger Schritt",
    SafeToNumber = Table.AddColumn(
        Quelle,
        "Betrag_num",
        each try Number.FromText([Betrag]) otherwise 0,
        type number
    )
in
    SafeToNumber

Ergebnis: Unlesbare Beträge führen nicht mehr zum Abbruch, sondern zu 0 oder deinem Wunschwert.


Best Practices für Einsteiger

Halte Schrittnamen sprechend, setze Datentypen früh, säubere Texte vor Joins und dokumentiere kurz warum ein Schritt existiert. Wenn möglich, arbeite gegen Tabellen aus dem Data Source statt gegen berechnete Zwischenschritte, das erhöht die Chance auf Query Folding und macht Abfragen schneller.

Fazit

Mit diesen 10 Power Query M Snippets erledigst du 80 Prozent der täglichen Datenvorbereitung: Typen setzen, Texte säubern, Spalten formen, Pivot/Unpivot, Lookups, Datumstabellen und Fehlerbehandlung. Du bekommst robuste, wiederholbare Pipelines direkt in Excel. Starte mit einem Snippet, passe es an deine Spalten an und baue Schritt für Schritt deinen Werkzeugkasten aus.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert