Umgang mit wechselnden Spaltenbeschriftungen mit Power Query



Hin und wieder müssen verteilte Dateien (zB zur Unterstützung eines Planungsprozess), deren

Struktur und Inhalt gleich,
Spaltenbeschriftungen aber ungleich sein können

geladen (und ggfs zusammengeführt) werden.

siehe auch strukturell gleiche Dateien in einem Ordner zusammenführen


Beispiel:
Die gelb markierten Spaltenbeschriftungen sind ungleich, die Spalte indes enthält in beiden Fällen
Anzahl Mitarbeiter



Wenn man in der Power Query Anfrage (Prozess Schritt "umbenannte Spalte") lediglich den Spalten Namen in "Anzahl" ändert,
wird man auf folgenden Fehler laufen, falls sich die unterschiedlichen Tabellen in der Quellfeld Spaltenbezeichnung (01.01.2016, 31.11.2015) unterscheiden




Wenn man sich den Code für die Umbenennung der Spaltenbeschriftung in Anzahl genauer anschaut kann man erkennen, woran das liegt.

Table.RenameColumns(Navigation,{{"31.01.2016", "Anzahl"}})

Die Funktion benutzt die Tabelle Navigation, sucht nach "31.12.2016" und benennt diese in "Anzahl" um.
Problem, die Spaltenbezeichnungen sind hart codiert.

Die Funktion
= Table.ColumnNames(Navigation)
listet die Spaltenbeschriftungen auf.



Setzt man die Spaltenindex in {} (Zählung beginnt bei 0) kann man die Spalte direkt adressieren)



Lösung (für Abfrage Prozess Schritt "umbenannte Spalte"):

= Table.RenameColumns(Navigation,{{Table.ColumnNames(Navigation){1}, "Anzahl"}})



Syntax für mehrere Spaltenbeschriftungen:
= Table.RenameColumns(Navigation,{{Table.ColumnNames(Navigation){0}, "Merkmal1"}, {Table.ColumnNames(Navigation){1}, "Merkmal2"}, {Table.ColumnNames(Navigation){2}, "Merkmal3"}, {Table.ColumnNames(Navigation){3}, "MerkmalN"}})

vereinfachter Ansatz mit List.Zip() 
= Table.RenameColumns(Quelle, List.Zip( {Table.ColumnNames(Quelle), { "Col 1", "Col 2", "Col 3"} } ) )

siehe auch die letzten N Spaltenbeschriftungen ändern
Leerzeichen aus Spaltenbeschriftungen entfernen

alternative Methode
alternative Methode 2 List.Zip()

Lern Video




Kommentare

Beliebte Posts aus diesem Blog

Vergleich mit 2 Bedingungen, INDEX(), VERGLEICH()

Dropdown Liste mit Mehrfachauswahl

nützliche Text Funktionen in Power Query