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
Der Rest ist klar: in Tabelle konvertieren, filtern, in Liste konvertieren.

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.