Spieglein, Spieglein, … – Geh joggen!
Eine hübsche Frage in der letzten PowerQuery-Schulung. Ich habe einen Moment überlegen müssen.
Die Aufgabe: wir exportieren aus unserer Datenbank regelmäßig eine Liste, die wir weiterverarbeiten müssen. Allerdings benötigen wir nicht alle Spalten. Dummerweise ändern sich die Spaltennamen regelmäßig … Wie kann ich nur die Spalten behalten, die mit „p_“ beginnen?
„Oder“, schob die Kollegin hinterher – alle Spalten, deren Überschrift eine Zahl (oder keine Zahl) enthalten …:
So schwer kann das doch nicht sein, oder? Alle Feldnamen, die mit „p_“ beginnen …:
Ich brauche die Überschrift. Man kann sie „extrahieren“, indem man alle Daten löscht:
Danach die Überschriften als erste Zeile verwendet und diese Zeile vertauscht (transponiert):
Nun kann man die Überschriften mit „p_“ filtern und in eine Liste konvertieren:
Ich nenne diesen Schritt „Selektierte_Ueberschrift“.
Man wäre auch mit einer Zeile M zu diesem Ergebnis gelangt:
Table.ColumnNames
Und wie verwendet man diese Liste als Filter?
Zunächst benötigt man die Liste. Mit fx kann ein Bezug auf die Tabelle hergestellt werden:
Löscht man nun Spalten, lautet der M-Befehl:
= Table.RemoveColumns(Benutzerdefiniert1,{"p_Gender", "p_Name", "p_StreetAddress"})
Entfernt man andere Spalten, lautet er:
= Table.SelectColumns(Benutzerdefiniert1,{"p_Gender", "p_Name", "p_StreetAddress"})
Und das kann durch den Namen der Liste ersetzt werden:
= Table.SelectColumns(Benutzerdefiniert1,Selektierte_Ueberschrift)
oder analog:
= Table.RemoveColumns(Benutzerdefiniert1,Selektierte_Ueberschrift)
Bleibt noch die Antwort auf die Frage: „und wie entferne ich alle Spalten, die Zahlen (Ziffern) enthalten?“
Ohne M könnte man einen Filter mit zehn Kriterien anlegen:
enthält nicht 1 und enthält nicht 2 und enthält nicht 3 … – ein bisschen Klickarbeit …
Aber durchaus machbar für jede und jeden – auch ohne Programmierkenntnisse. Und mit M? – Nun – die Antwort auf die Frage: „Wie baue ich eine Schleife und lösche alle Zeilen, die nicht 1 und nicht 2 und nicht 3, … enthalten“ überlasse ich der geneigten Leserin und dem geneigten Leser!
Auf alle Fälle waren die Teilnehmerinnen der Schulung zufrieden.