Office-Blog

Power Query: Datum aus dem Spaltentitel auslesen und als neue Spalte bereitstellen

08.03.2023   Hildegard Hügemann

Beim Import aus fremden Systemen sind wichtige Informationen manchmal Teil eines Spaltentitels. Hier im Beispiel ist es der Monat, aus dem die Daten stammen. Es kann aber auch die verwendete Währung oder die Umsatzbasis sein. Wird diese Teilinformation für die spätere Auswertung gebraucht, muss sie aus dem Spaltentitel ausgelesen und als neue Spalte bereitgestellt werden. In diesem Power-Query-Rezept beschreibe ich die Schritte.

Eine Information aus dem Spaltentitel in einer neuen Spalte bereitstellen

Information aus Spaltenüberschrift in einem Schritt sichern

Um die Information aus dem Spaltentitel auszulesen, gehe ich wie folgt vor:

  • Ich wähle die Befehlsfolge Daten > Aus Tabelle/Bereich.

    Tabelle in Power Query einlesen und neuen benutzerdefinierten Schritt einleiten

  • Ich klicke auf das fx neben der Bearbeitungsleiste und erzeuge so einen neuen benutzerdefinierten Schritt, der sich auf den vorherigen namens Quelle bezieht.
  • Um auf den Spaltentitel zugreifen zu können, erweitere ich den M-Code um die Funktion Table.ColumnNames.

    Mit Table.ColumnNames die Spaltentitel des Schrittes Quelle als Liste erzeugen

  • Am Ende des Ausdrucks füge ich {0} hinzu, um den ersten Eintrag dieser Spaltenliste auszulesen.
  • Damit ich nur die letzten 7 Zeichen mit der Monatsangabe erhalte, ummantele ich den Ausdruck mit der Funktion Text.End.

    Mit Text.End und der Angabe 7 die letzten 7 Zeichen auslesen

  • Den benutzerdefinierten Schritt benenne ich um in Umsatzmonat.

Extrahierte Information als Spalte verfügbar machen

Nun kehre ich zur eigentlichen Umsatzliste zurück und erweitere diese um eine neue Spalte:

  • Ich klicke auf das fx neben der Bearbeitungsleiste und verweise dort wieder auf den Schritt Quelle.
  • Den benutzerdefinierten Schritt benenne ich um in ZurueckZurQuelle.

    Mit einem benutzerdefinierten Schritt wieder zur Ausgangsliste zurückkehren

  • Nun klicke ich auf Spalte hinzufügen > Benutzerdefinierte Spalte, wähle als Spaltenname Monat und als Formel = Umsatzmonat.

    Benutzerdefinierte Spalte erstellen mit der Information des Umsatzmonats

Spalten umbenennen, verschieben und Datentypen anpassen – unabhängig vom Monat

Zum Schluss möchte ich noch die erste Spalte ordentlich benennen, die Spalten in eine andere Reihenfolge bringen und die Datentypen anpassen.
Aber ACHTUNG, dabei ist Vorsicht geboten, denn das Aufbereiten der Daten soll auch für künftige Monate funktionieren.

Deshalb darf der Name der ersten Spalte im M-Code nicht vorkommen. Das löse ich wie folgt:

  • Als erstes benenne ich die Spalte wie gewohnt per Doppelklick auf den Spaltennamen um. Im dabei entstandenen M-Code ersetze ich den festen Spaltennamen durch Table.ColumnNames(Quelle){0}.

    Festen Spaltennamen ersetzen durch den aktuellen, per Formel ermittelten Namen

    Festen Spaltennamen ersetzen durch den aktuellen, per Formel ermittelten Namen

  • Jetzt kann ich beruhigt die Spalten durch Ziehen mit der Maus in eine andere Reihenfolge bringen und die Datentypen anpassen.

Wer Interesse an weiteren Abfrage-Techniken hat, …

… ist genau richtig in meinem Online-Kurs Power Query für Fortgeschrittene: Mit eigenen Abfrage-Tools die Datenaufbereitung optimieren am 25. Oktober.

Hier geht’s zu den Details und zur Anmeldung.

Flyer zum Herunterladen

Flyer zum Herunterladen

TIPP: Wer hier im Blog ALLE Rezepte zu Power Query finden möchte, gibt einfach oben rechts in das Suchfeld Power-Query-Rezept ein.

Über den Autor

Hildegard Hügemann

- Dipl.-Informatikerin
- Zertifizierte Office-Trainerin mit den Schwerpunkten Excel, Access, Word
- Entwicklerin von Excel-Tools zur Projekt-, Produktions- und Verkaufssteuerung
- Coach bei der Datenaufbereitung mit Access, Power Query und Power Pivot
- Entwicklerin von Access-Datenbanken für Mittelständler und Behörden
- Bloggerin zu Excel und Access auf www.huegemann-informatik.de
- Autorin für Microsoft Press, dpunkt.verlag und das »Projekt Magazin«