Skip to main content

3 Minuten Lesezeit

Power Query: Spaltenüberschriften verständlich statt kryptisch dank einer Matchingtabelle

Das erlebe ich oft: Listen sind gefühlt einen Meter breit und schrecken mit einer Vielzahl kryptischer Spaltenüberschriften ab. Wie bekomme ich diese in eine verständliche Sprache? Muss ich etwa jede Spalte einzeln manuell umbenennen? Die Antwort lautet NEIN.

Denn schneller geht das Umbenennen mit Hilfe einer Matchingtabelle in Kombination mit der M-Funktion Table.RenameColumns.
Die Matchingtabelle enthält lediglich zwei Spalten: OldHeader und NewHeader. Sie steuert, WELCHE Spalten WIE umbenannt werden sollen.
Das Ergebnis: Weniger Schritte, bessere Verständlichkeit und eine Lösung, die leicht zu warten ist. Wie das funktioniert, zeige ich in diesem Beitrag.

Kryptische Spaltenüberschriften werden mit Hilfe einer Matchingtabelle in verständliche Spaltenüberschriften umbenannt

Kryptische Spaltenüberschriften werden mit Hilfe einer Matchingtabelle in verständliche Spaltenüberschriften umbenannt

Spaltenüberschriften manuell umbenennen

Zum besseren Verständnis zeige ich zuerst, welchen M-Code Power Query produziert, wenn ich Spalten manuell umbenenne.
So gehe ich vor:

  • Ich lese die Tabelle Transaktionen in Power Query ein
  • Die erste Spaltenüberschrift OBJ_ID kann unverändert bleiben.
  • Ich starte also mit dem Umbenennen bei der zweiten Spalte: CLI_ID. Per Doppelklick auf die Spaltenüberschrift überschreibe ich diese mit Kundennummer.
    Dabei wird der Befehl Table.RenameColumns produziert mit einem Listenpaar, das alte und neue Benennung innerhalb einer Liste anzeigt. Listen werden in Power Query mit geschweiften Klammern gekennzeichnet.
  • Benenne ich im nächsten Schritt DOC_NO um, entsteht innerhalb der Liste eine weitere mit dem nächsten Umbenennungspaar.

Das Umbenennen vieler Spalten auf diese Art wäre ziemlich mühsam. Vertippe ich mich, muss ich den Umbenennungsschritt wiederholen oder die richtige Bezeichnung im M-Code in der Bearbeitungsleiste austauschen. Das wäre nicht nur mühsam, sondern auch fehleranfällig. Daher braucht es eine Lösung, die a) flexibler ist und b) transparent zeigt, WELCHE Spaltenüberschriften WIE umbenannt wurden.

Nicht manuell, sondern automatisch mit einer Matchingtabelle

Statt jede Spalte einzeln umzubenennen, ordne ich die alten und die gewünschten neuen Spaltenüberschriften in einer Tabelle an. Die benenne ich Matchingtabelle (natürlich sind auch andere Namen möglich).
Wichtig dabei: Die Tabelle muss aus zwei Spalten mit den Namen OldHeader und NewHeader bestehen.
So gehe ich vor:

  • Ich lese die Matchingtabelle in Power Query ein und lege die Datentypen beider Spalten auf Text fest.
  • In der vorhergehenden Abfrage tausche ich nun im Table.RenameColumns-Schritt die komplette Liste der Umbenennungspaare aus durch Table.ToRows(Matchingtabelle).
Table.ToRows erstellt aus der Matchingtabelle eine Liste von geschachtelten Listen, so wie die Funktion Table.RenameColumns es benötigt

Table.ToRows erstellt aus der Matchingtabelle eine Liste von geschachtelten Listen, so wie die Funktion Table.RenameColumns es benötigt

Aus der Praxis: Fehler bei fehlenden Spalten verhindern

Enthält die Matchingtabelle Spaltennamen, die beim nächsten Update nicht dabei sind, führt dies zu folgendem Fehler.

Enthält die Matchingtabelle überflüssige Spaltenüberschrift, die in der Datenquelle nicht vorhanden sind, so führt dies zu einem Fehler.

Enthält die Matchingtabelle überflüssige Spaltenüberschriften, die in der Datenquelle nicht vorhanden sind, so führt dies zu einem Fehler.

 

Ein solchen Fehler kann ich wie folgt vermeiden:

  • Ich erweitere den Table.RenameColumns-Schritt um das dritte Argument missingField mit dem Wert MissingField.Ignore.  Dieses Argument ist nämlich standardmäßig mit MissingField.Error belegt.
Das dritte Argument MissingField.Ignore sorgt dafür, dass überflüssige Einträge in der Matchingtabelle ignoriert werden und nicht zu einem Fehler führen.

Das dritte Argument mit dem Wert MissingField.Ignore sorgt dafür, dass überflüssige Einträge in der Matchingtabelle ignoriert werden und nicht zu einem Fehler führen.

Fazit

Das hier beschriebene Vorgehen zum Umbenennen von Spaltenüberschriften bringt mehrere praktische Vorteile:

  1. Leichtere Wartung: Die Spaltenlogik liegt in einer Tabelle und nicht im M-Code.
  2. Skalierbarkeit: Auch eine Vielzahl von Spalten lässt sich ohne lange Codezeilen verwalten.
  3. Flexibilität: Die Matchingtabelle kann z. B. aus Excel, einer Datenbank oder anderen Quellen kommen.
  4. Weniger Abfrage-Schritte: Alle Umbenennungen werden in einem einzigen Schritt erledigt.

Mit Table.RenameColumns und einer Matchingtabelle können Spaltennamen dynamisch, zentral gesteuert und in nur einem Schritt umbenannt werden – eine saubere Lösung für wiederverwendbare Power-Query-Abfragen.

Kontakt aufnehmen

+49 6074 960752

Meine erworbenen Microsoft-Zertifizierungen