Power Query: Anfügen neuer Tabellen mit abweichender Spaltenanzahl ohne Datenverlust | Teil 2
07.02.2023
In Teil 1 habe ich gezeigt, wie mit einer einzigen Power Query-Abfrage stets alle Tabellen einer Arbeitsmappe automatisch angefügt werden, auch wenn im Laufe der Zeit zusätzliche Spalten hinzukommen. Dabei habe ich die M-Funktion Table.Combine eingesetzt.
Der Nachteil dieser Lösung: Table.Combine kann als Parameter nur eine Liste – sprich EINE Spalte – verarbeiten.
Was aber, wenn zusätzlich zu den Daten noch der Name der Tabelle benötigt wird, um beispielsweise den Monat zu hinterlegen, aus dem die Daten stammen? Auch das ist mit einem kleinen Eingriff in den M-Code möglich. Hier sind die Schritte.

Relevante Spaltennamen in einem Schritt ermitteln und beim Entpacken nutzen
Wie schon in Teil 1 gezeigt, wähle ich die gesamte Arbeitsmappe für die Transformation aus, filtere dann nach den Tables und behalte nur die Spalten, die ich benötige.
Diesmal ist das nicht nur die Spalte Data, sondern auch die Spalte Name, aus der ich später die Information zum Monat entnehme.

Nicht nur die Spalte Data, sondern auch die Spalte Name behalten
Um die Spalte Name zu behalten, könnte ich auf die altbewährte Methode zurückgreifen und die Spalte Data über den Doppelpfeil entpacken. Doch wie schon in Teil 1 beschrieben, werden dabei nur die gerade verfügbaren Spalten zum Entpacken berücksichtigt. Dieses Manko umgehe ich, indem ich einen Schritt voranstelle, der alle relevanten Spaltennamen ermittelt. Diesen Schrittnamen gebe ich später beim Entpacken mit. Ich gehe wie folgt vor:
- Ich klicke auf das fx neben der Bearbeitungsleiste [1] und erzeuge so einen neuen benutzerdefinierten Schritt, der sich auf den vorherigen namens Andere entfernte Spalten bezieht.
- Auf die Spalte Data des Schrittes wende ich die Funktion Table.Combine an, indem ich den M-Code erweitere – wie unter [2] in der gelben Markierung gezeigt.
- Anschließend schließe ich den gesamten Ausdruck in die Funktion Table.ColumnNames ein – wie unter [3] in der blauen Markierung gezeigt.
- Diesen Schritt benenne ich um in Spaltennamen [4].
Zur Erläuterung: Auf diese Weise füge ich alle vorhandenen Tabellen zusammen und ermittle die Spaltenüberschriften dieser neuen Tabelle. Diese liegen dann im Schritt namens Spaltennamen in einer Liste vor, die ich später verwende.
In einem benutzerdefinierten Schritt alle Spaltenüberschriften in einer Liste hinterlegen
- Nach dieser kleinen Umleitung kehre ich wieder auf die Hauptstraße zurück, indem ich auf fx klicke und dort nach der Eingabe von = # den Schritt #“Andere entfernte Spalten“ auswähle.

Mit einem benutzerdefinierten Schritt zu einem bestimmten Abfrageschritt zurückkehren
- Anschließend kann ich – wie in Teil 1 gezeigt – die Daten über den Doppelpfeil in der Spalte Data entpacken. Hierbei werden im M-Code alle Spalten aufgelistet, die aktuell zur Verfügung stehen. Dieses Problem behebe ich, indem ich im M-Code die festen Bezeichnungen durch den Schrittnamen Spaltennamen ersetze.

Feste Spalteninformationen durch Schrittnamen ersetzen
Monatsinformation aus dem Namen der Tabelle extrahieren
Um nun noch den Namen der Tabelle als Monatsinformation verwenden zu können, gehe ich so vor:
- Ich markiere die Spalte Name [1], wähle im Register Transformieren [2] die Befehlsfolge Extrahieren [3] > Letzte Zeichen [4] und stelle 7 ein.

Monatsinformation aus dem Tabellennamen extrahieren
- Abschließend benenne ich noch die Spalte Name per Doppelklick um in Monat.
Auch hier kann sich das Ergebnis sehen lassen: Alle Tabellennamen und alle Spaltennamen sind beim Anfügen der Daten erhalten geblieben.

Alle Tabellennamen und alle Spaltennamen bleiben beim Anfügen der Daten erhalten
Ähnliche Beiträge
-
Power Query: Ausgeblendete Arbeitsblätter auslesen? So geht’s doch!
Kürzlich erhielt ich den Hilferuf einer Anwenderin, weil sie in Excel mit Power Query nicht auf die Daten in einer anderen Arbeitsmappe zugreifen konnte. Sie wurden im Navigator nicht angezeigt....
-
Power Query: Falsche Datentypen? Drei Tipps, die das verhindern
Es sollte mal wieder schnell gehen und dabei bleib das Festlegen der Datentypen auf der Strecke. Doch spätestens beim nächsten Datenimport rächt sich das. Denn unsachgemäß eingestellte oder bei erneuten...
-
Power Query: Spalten entfernen ja, aber bitte richtig
Kürzlich hatte ich im Kurs eine spannende Diskussion zum Entfernen von Spalten. Die Frage war: Was tun, wenn sich nach dem Entfernen mehrerer Spalten herausstellt, dass es eine zu viel...